2011-12-20 2 views
0
string xml = @"<AllBands > 
    <Band> 
     <Name ID=""1234"" started=""1962"">Beatles<![CDATA[lalala]]></Name> 
     <Last>1</Last> 
     <Salary>2</Salary> 
    </Band> 
    <Band> 
     <Name ID=""222"" started=""1968"">Doors<![CDATA[lalala]]></Name> 
     <Last>1</Last> 
     <Salary>2</Salary> 
    </Band> 
    </AllBands>"; 



    XmlReader reader = XmlReader.Create(new StringReader(xml)); 
     XElement root = XElement.Load(reader); 
    var child1 = root.XPathSelectElements(@"/AllBands/Band"); 

child1에는 하위 항목이 없습니다.XPathSelectElements 메서드는 결과를 산출하지 않습니까?

내가 무엇이 누락 되었습니까?

+0

페이지가 [XPathSelectElements] (http://msdn.microsoft.com/en-us/library/bb342176.aspx)이 –

+0

당신은해야한다 ['using'] (http://msdn.microsoft.com /en-us/library/yh598w02.aspx) 둘 다'StringReader'와'XmlReader'를 사용합니다. – GSerg

+0

@GSerg 예 알아요. –

답변

2

root은 XML 문서를 나타내지 않으므로 XElement.Load()을 사용하여로드 한 이후 AllBands 요소를 나타냅니다. 따라서 XPATH는 해당 요소에 상대적이어야합니다.

var children = root.XPathSelectElements("Band"); 
관련 문제