2014-01-30 163 views
2

嘗試在下面的XML文件示例中檢索Rank的值... 我傳遞的路徑很好地利用SelectNodes方法,除了當我將屬性添加到路徑時該代碼將跳過foreach循環C#使用XmlDocument獲取XML元素值

欣賞就如何解決這個任何幫助。 此外,我正在尋找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

你應該能夠要做到這一點:

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

然後確認你得到了一個結果。