xml里根据属性节点里的文本节点,进入不同的属性节点
如xml文档结构
< Test>
< Test1 name="one" value="A" >
<Detail>
<DetailCase name="name1" id="1" />
</Detail>
< /Test1>
< Test1 name="two" value="B">
<Detail>
<DetailCase name="name2" id="2" />
</Detail>
< /Test1>
< /Test>
怎么通过属性节点Test里文本节点value的值,进入不同的节点,比如在一个方法里传入A,就进入A属性节点里,传入B就进入B属性节点?
我现在已经写的差不多了,就卡在获取文本节点的时候,不能第二次获取。foreach
XmlDocument xmlDoc = GetPath();
//获取所有元素节点
XmlNodeList topM = xmlDoc.DocumentElement.ChildNodes;
if (topM.Count == 0)
{
return null;
}
else
{
foreach (var item in topM)
{
XmlElement x=item as XmlElement;
//获取verifyMethod文本节点
string verifyMethod = x.Attributes["value"].Value;
if (verifyMethod == tag)
{ //... }
}
}
string verifyMethod = x.Attributes["value"].Value; 这里第二次遍历的时候会报错,错误消息是:未将对象引用到对像的实例。
//编辑器能不能再整整啊,空格排版比较麻烦、繁琐。
shitoe
12 years, 3 months ago
Answers
System.Xml.XmlNodeList EnergyItemHourList = xml.SelectNodes("Test/Test1[@value='A']");
这个就行了吧……
这个是XPath的方法
var saveList = xml.SelectNodes("Test/Test1[@value='A... ;
注意要using System.Linq;
没有Linq的话
不是受的受兔
answered 12 years, 3 months ago