2

我想获取节点 id 值取决于 C# 中的另一个节点值,例如:从以下 xml 文件中,我想在节点<name>时获取节点值<id> = 10

<studymonth2>
  <id>11</id>
  <name>November</name>
</studymonth2>

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

感谢您的任何建议

4

1 回答 1

2

您可以使用以下 XPath:

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

简而言之,这告诉解析器返回具有值为 10 的name子项studymonth2id子项的值。

编辑

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

例如给定 xml 文件:

<xml>
    <studymonth2>
        <id>11</id>
        <name>November</name>
    </studymonth2>

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

XmlDocument

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

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

使用 Linq 2 Xml:

using System.Xml.Linq;
using System.Xml.XPath;
....
XDocument doc = XDocument.Load(@"c:\temp\myxml.xml");
string name = doc.XPathSelectElement("//studymonth2[id='11']/name").Value;
于 2013-01-02T13:40:41.587 回答