如何在C#中获取由另一个节点值指定的节点值

时间:2013-01-02 13:32:33

标签: c# xml

我想得到的节点id值取决于C#中的另一个节点值, 示例:从以下xml文件开始,我想在节点<name>

时获取节点<id> = 10
<studymonth2>
  <id>11</id>
  <name>November</name>
</studymonth2>

<studymonth2>
  <id>12</id>
  <name>December</name>
</studymonth2>

感谢您的任何建议

1 个答案:

答案 0 :(得分:2)

您可以使用以下XPath:

studymonth2[id='10']/name/text()

简单地说,这会告诉解析器返回name的{​​{1}}子项的值,其中studymonth2子项的值为10.

修改

在C#中,您可以使用idXmlDocument通过xpath访问节点:

e.g。给出xml文件:

XDocument

使用<xml> <studymonth2> <id>11</id> <name>November</name> </studymonth2> <studymonth2> <id>12</id> <name>December</name> </studymonth2> </xml>

XmlDocument

使用Linq 2 Xml:

using System.Xml;
....
XmlDocument doc = new XmlDocument();
doc.Load(@"c:\temp\myxml.xml");

string name = doc.SelectSingleNode("//studymonth2[id='11']/name")
                 .InnerText;