2009-11-15 6 views
7

xml의 모든 요소와 특성을 탐색하고 요소의 이름을 미리 모른 채 이름에 값을 부여하고 싶습니다. 나는 심지어 Linq에서 C#으로 XML을 가지고 있고 엘리먼트의 이름을 이미 알고있을 때 엘리먼트의 값을 얻기 위해 쿼리하는 법만 알려준다.linq to xml을 사용하여 xml 트리의 모든 요소를 ​​탐색합니다.

아래 코드는 가장 높은 수준의 요소 정보만을 제공합니다. 내림차순 요소 모두에 도달해야합니다.

  XElement reportElements = null; 
      reportElements = XElement.Load(filePathName.ToString()); 


      foreach (XElement xe in reportElements.Elements()) 
      { 

       MessageBox.Show(xe.ToString()); 
      } 

답변

17

Elements 하나 개의 수준을 산책; Descendants은 DOM 요소 전체를 탐색하므로 요소별로 (요소별로) 속성을 확인할 수 있습니다.

foreach (var el in doc.Descendants()) { 
     Console.WriteLine(el.Name); 
     foreach (var attrib in el.Attributes()) { 
      Console.WriteLine("> " + attrib.Name + " = " + attrib.Value); 
     } 
    } 
+0

위대한 기능을 수행했습니다. 도와 주셔서 대단히 감사합니다! –

+0

JK - 잊어 버렸나요? –

+0

어, 뭔가 잊어 버린 것을 모르겠다. –

1

당신이 시도해야합니다

reportElements.Descendants()