C# 使用 XmlDocument 获取 XML 元素值

标签 c# xml xpath xmldocument

尝试在下面的 XML 文件示例中检索 Rank 的值... 我传递的路径可以很好地使用 SelectNodes 方法,除了当我将属性添加到路径时代码将跳过 foreach 循环

感谢有关如何解决此问题的任何帮助。 此外,我正在寻找 Rank 元素的一个值及其基于 Sub ID 和 Rank ID 的特定属性的值,因此不需要循环,但这是我知道的唯一方法

XML 文件:

<Model>

<BookStore>
    <Book>
      <Sub ID="Science">
        <Rank ID="Chemistry">Value1</Rank>
        <Rank ID="Physics">Value2</Rank>
      </Sub>
    </Book>
</BookStore>

</Model>

C#代码:

var myDoc = new XmlDocument();
myDoc.Load(MapPath("myXML.xml"));

XmlNodeList rankList = myDoc.SelectNodes("/Model/BookStore/Book/Sub[@ID='Science']/Rank");  // Science can be any other variable
foreach (XmlNode myRankNode in rankList)
{
    if (myRankNode.Attributes["ID"].Value.ToString() == "Physics") // Physics can be any other variable
    {
        myValue = myRankNode.InnerText;
    }

}

最佳答案

你应该能够做到这一点:

 myDoc.SelectNodes("/Model/BookStore/Book/Sub[@ID='Science']/Rank[@ID='Physics']");

然后确认你得到了一个结果。

关于C# 使用 XmlDocument 获取 XML 元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21462996/

相关文章:

android - 试图将按钮移动到屏幕的右侧。我的权利不是电脑的权利

javascript - 在 XSLT 中通过 onclick 事件传递变量无法正常工作

java - 通过元素xpath获取值

xsd-validation - 何时使用 DTD 与 XSD 进行验证

C# 应用程序应该是异步的,但 UI 仍然卡住

c# - 三层架构问题

c# - ASP.Net Core 中没有智能感知

xml - xPath:仅当子元素不包含特定值时才选择父元素

c# - 在 C# Process.Start 参数中使用单引号

c# - ASP Identity 和 Owin - token 生成