尝试在下面的 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/