C#使用XmlDocument获取XML元素值

时间:2014-01-30 17:11:18

标签: 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;
    }

}

1 个答案:

答案 0 :(得分:1)

你应该能够做到这一点:

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

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