2008-09-24 3 views
2

Если бы я имел некоторые XML, такие как это загружается в объект XDocument:запрос, чтобы получить имена узлов группы

<Root> 
    <GroupA> 
     <Item attrib1="aaa" attrib2="000" /> 
    </GroupA> 
    <GroupB> 
     <Item attrib1="bbb" attrib2="111" /> 
     <Item attrib1="ccc" attrib2="222" /> 
     <Item attrib1="ddd" attrib2="333" /> 
    </GroupB> 
    <GroupC> 
     <Item attrib1="eee" attrib2="444" /> 
     <Item attrib1="fff" attrib2="555" /> 
    </GroupC> 
</Root> 

Что бы запрос выглядеть, чтобы получить имена узлов группы?

Например, я хотел бы запрос, чтобы вернуться:

GroupA 
GroupB 
GroupC 

ответ

8

Что-то вроде этого:

XDocument doc; // populate somehow 

// this will give the names as XName 
var names = from child in doc.Root.Elements() 
      select child.Name; 

// if you want just the local (no-namespaces) name as a string, use this 
var simpleNames = from child in doc.Root.Elements() 
        select child.Name.LocalName; 
+0

LocalName ... вот оно! Спасибо :) – Bullines 2008-09-24 00:37:57