2010-07-05 7 views
0

다음 XML 응답 : http://www.dreamincode.net/forums/xml.php?showuser=335389XML의 모든 하위 요소를 어떻게 잡을 수 있습니까?

나는 모든 사용자의 친구를 움켜 잡고 싶습니다. 친구의 모든 정보를 수집해야합니다. 일반적으로 도움을 받으면 각 ID를 사용하여 고유 한 ID를 사용하지만 각 사용자마다 동일한 친구가 없기 때문에 동적이어야하며 아무 것도 코딩 할 수 없습니다.

누구나 XDocument 마법을 공유해 주시겠습니까? 당신은 아마

http://www.w3schools.com/xpath/xpath_examples.asp

예제는 JScript를 사용하지만 그것은 또한 .NET에서 지원하는 XPath 쿼리를 사용할 수 있습니다

답변

2

당신은 같은 XML 문서에서 <friends> 요소의 모든 <user> 요소를 얻을 수 있습니다 이 :

var url = "http://www.dreamincode.net/forums/xml.php?showuser=335389"; 
var doc = XDocument.Load(url); 
var friends = doc.Element("ipb").Element("profile") 
       .Element("friends").Elements("user"); 

// Or if you don't want to specify the whole path and you know that 
// there is only a single element named <friends>: 
var friends = doc.Descendant("friends").Elements("user"); 

그런 다음 LINQ를 사용하여 컬렉션을 처리 할 수 ​​있습니다. 예를 들어, 모든 frineds의 이름과 IEnumerable<string>을 만들려면 쓸 수있다 : 당신이 고유 ID를 필요한 경우가 정수의 경우

var names = from fr in friends 
      select fr.Element("name").Value; 

, 당신은 (유사한 방식으로 <id> 요소를 읽을 수, 당신은 할 수 또한 예를 들어 Int32.Parse을 사용하여 구문 분석합니다 ...)

관련 문제