2014-01-30 3 views
2

아래 XML 파일 예제의 순위 값을 가져 오려고 시도 중 ... 경로 전달 속성이 경로에 특성을 추가 할 때를 제외하고 SelectNodes 메서드를 사용하여 잘 작동합니다. 코드는 foreach 루프를 건너 뜁니다C# XmlDocument를 사용하여 XML 요소 값 가져 오기

이 문제를 해결하는 데 도움을 주셔서 감사합니다. 또한 하위 ID 및 순위 ID의 특정 속성을 기반으로 Rank 요소와 해당 값을 하나씩 찾고 있는데 루프가 필요 없지만 그 유일한 방법입니다.

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']"); 

그리고 정확히 하나의 결과를 얻었는지 확인하십시오.

관련 문제