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

标签 c# xml

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

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

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

感谢您的建议

最佳答案

您可以使用以下 XPath:

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

简单地说,这告诉解析器返回 studymonth2name 子级的值,其中 id 子级的值为 10。

编辑

在 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;

关于c# - 如何在 C# 中获取另一个节点值指定的节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14123037/

相关文章:

c#httpwebrequest凭证问题

c# - 如何在 RDLC 报告的同一文本框中左对齐和右对齐两个不同的表达式?

c# - Microsoft asp c# RegEx 转义多个保留字符

java - 使用 JDOM 修改 XML

c# - Entity Framework 4

c# - 如何在不使用 transform.Rotate 的情况下在其本地或世界轴上旋转具有第二个四元数的四元数?

java - 无法将示例 XML 文件导入/转换为字符串以进行解析

python - 使用 Python ElementTree 在 XML 中查找和编辑子元素

java - Android中如何淡出滑动层的背景

java - 如何将 ImageView 固定到布局的底部?