2016-12-16 53 views
1

我怎麼循環不知道該元素的名稱所有XML如何循環屬性不知道元素

這裏所有的XML屬性是我的示例XML

<dd l="11243" t="641" r="11653" b="1004"> 
    <para l="11276" t="768" r="11620" b="941" alignment="left" spaceBefore="79" lsp="exactly" lspExact="273" language="en"> 
    <ln l="11342" t="768" r="11554" b="941" baseLine="939" underlined="none" subsuperscript="none" fontSize="1250" fontFace="Times New Roman" fontFamily="roman" fontPitch="variable" spacing="19" foreColor="545766"> 
     <wd l="11342" t="768" r="11554" b="941"> 
     <ch l="11342" t="768" r="11453" b="936">4</ch> 
     <ch l="11472" t="768" r="11554" b="941" conf="10">3</ch> 
     </wd> 
    </ln> 
    </para> 
</dd> 

,這裏是我的代碼

XDocument columndoc = XDocument.Parse(reader); 
foreach (var node in columndoc.Descendants("para").ToList()) 
{ 
} 

但我不想循環所有元素並閱讀它的l,t,r,b標籤。

所以我如何循環使用它的屬性。謝謝

+0

您的預期結果是什麼? – Jacky

+0

使用像這張貼遞歸算法:http://stackoverflow.com/questions/28976601/recursion-parsing-xml-file-with-attributes-into-treeview-c-sharp – jdweng

回答

4

只需省略Descendants()"para"參數 - 即可獲得所有後代元素。然後你可以調用Attributes()(在這種情況下是IEnumerable<XElement>的擴展方法)來獲取所有這些元素的所有屬性。

var allAttributes = doc.Descendants().Attributes().ToList(); 
+0

非常感謝你 –