<?xml version="1.0" encoding="utf-8" ?>
<khda>
<view>
<khid pshow="1" width="30"/>
<khname pshow="1" width="60"/>
</view>
</khda>
求两个方法:
1,读取给定节点的 某个属性。如给定节点:khda\view\khid,读取属性pswhow的值或width的值。
2,更改某给定节点的 某个属性。如给定节点:khda\view\khid,更改属性pswhow的值或width的值(当节点或属性不存在时,增加节点或属性。)。
非常感谢!
11 个解决方案
#1
XmlDocument xml = new XmlDocument();
xml.Load("Test.xml");
XmlNode xn = xml.SelectSingleNode("khda/view");
foreach (XmlNode xn1 in xn.ChildNodes)
{
Console.WriteLine(xn1.Attributes[""].Value);
}
Console.ReadLine();
或XElement xe= XElement.Parse(xml);
var query = from x in xe.Descendants("")
select new
{
w=y.Attribute("width").Value,
...
};
xml.Load("Test.xml");
XmlNode xn = xml.SelectSingleNode("khda/view");
foreach (XmlNode xn1 in xn.ChildNodes)
{
Console.WriteLine(xn1.Attributes[""].Value);
}
Console.ReadLine();
或XElement xe= XElement.Parse(xml);
var query = from x in xe.Descendants("")
select new
{
w=y.Attribute("width").Value,
...
};
#2
string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<khda>
<view>
<khid pshow=""1"" width=""30""/>
<khname pshow=""1"" width=""60""/>
</view>
</khda>";
XElement root = XElement.Parse(xml);
var query = root.Descendants("view").Elements("khid").Select(x => x.Attribute("width").Value).ToList();
foreach (string s in query)
Console.WriteLine(s);
30
<khda>
<view>
<khid pshow=""1"" width=""30""/>
<khname pshow=""1"" width=""60""/>
</view>
</khda>";
XElement root = XElement.Parse(xml);
var query = root.Descendants("view").Elements("khid").Select(x => x.Attribute("width").Value).ToList();
foreach (string s in query)
Console.WriteLine(s);
30
#3
Console.WriteLine(xn1.Attributes[""].Value);
这句是什么意思,是要便利所有属性吗,还是我把属性名写在""就可以一句搞定。
这句是什么意思,是要便利所有属性吗,还是我把属性名写在""就可以一句搞定。
#4
#5
另外更改怎么写呢,请吴老师再详解。
#6
http://topic.csdn.net/u/20110111/20/c576c655-c2ed-4665-b267-374a37213ad4.html
#7
还是挺难懂的,我再研究研究吧。
哪位老师有空,直接帮我写两个方法吧。
#8
C#中操作XML的方式很多,给你一段很简单的代码,你可以在此基础上进行修改,这短代码已经过测试。
//取得属性的值
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("test.xml");
XmlNode node = xmlDocument.SelectSingleNode("/khda/view/khid");
foreach (XmlAttribute item in node.Attributes)
{
MessageBox.Show(item.Value);
}
//更改属性的值
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("test.xml");
XmlNode node = xmlDocument.SelectSingleNode("/khda/view/khname");
node.Attributes["pshow"].InnerText = "测试1";
node.Attributes["width"].InnerText = "测试2";
xmlDocument.Save("test.xml");
#9
#10
Xpath是个小语法,要基本掌握。
#11
不好意思,刚结贴。
#1
XmlDocument xml = new XmlDocument();
xml.Load("Test.xml");
XmlNode xn = xml.SelectSingleNode("khda/view");
foreach (XmlNode xn1 in xn.ChildNodes)
{
Console.WriteLine(xn1.Attributes[""].Value);
}
Console.ReadLine();
或XElement xe= XElement.Parse(xml);
var query = from x in xe.Descendants("")
select new
{
w=y.Attribute("width").Value,
...
};
xml.Load("Test.xml");
XmlNode xn = xml.SelectSingleNode("khda/view");
foreach (XmlNode xn1 in xn.ChildNodes)
{
Console.WriteLine(xn1.Attributes[""].Value);
}
Console.ReadLine();
或XElement xe= XElement.Parse(xml);
var query = from x in xe.Descendants("")
select new
{
w=y.Attribute("width").Value,
...
};
#2
string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<khda>
<view>
<khid pshow=""1"" width=""30""/>
<khname pshow=""1"" width=""60""/>
</view>
</khda>";
XElement root = XElement.Parse(xml);
var query = root.Descendants("view").Elements("khid").Select(x => x.Attribute("width").Value).ToList();
foreach (string s in query)
Console.WriteLine(s);
30
<khda>
<view>
<khid pshow=""1"" width=""30""/>
<khname pshow=""1"" width=""60""/>
</view>
</khda>";
XElement root = XElement.Parse(xml);
var query = root.Descendants("view").Elements("khid").Select(x => x.Attribute("width").Value).ToList();
foreach (string s in query)
Console.WriteLine(s);
30
#3
Console.WriteLine(xn1.Attributes[""].Value);
这句是什么意思,是要便利所有属性吗,还是我把属性名写在""就可以一句搞定。
这句是什么意思,是要便利所有属性吗,还是我把属性名写在""就可以一句搞定。
#4
#5
另外更改怎么写呢,请吴老师再详解。
#6
http://topic.csdn.net/u/20110111/20/c576c655-c2ed-4665-b267-374a37213ad4.html
#7
还是挺难懂的,我再研究研究吧。
哪位老师有空,直接帮我写两个方法吧。
#8
C#中操作XML的方式很多,给你一段很简单的代码,你可以在此基础上进行修改,这短代码已经过测试。
//取得属性的值
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("test.xml");
XmlNode node = xmlDocument.SelectSingleNode("/khda/view/khid");
foreach (XmlAttribute item in node.Attributes)
{
MessageBox.Show(item.Value);
}
//更改属性的值
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load("test.xml");
XmlNode node = xmlDocument.SelectSingleNode("/khda/view/khname");
node.Attributes["pshow"].InnerText = "测试1";
node.Attributes["width"].InnerText = "测试2";
xmlDocument.Save("test.xml");
#9
#10
Xpath是个小语法,要基本掌握。
#11
不好意思,刚结贴。