[英]How to iterate over xml using linq2xml or Xquery
我有一個傳入文件,數據為
<root><![CDATA[<defs><elements>
<element><item>aa</item><int>1</int></element>
<element><item>bb</item><int>2</int></element>
<element><item>cc</item><int>3</int></element>
</elements></defs>]]></root>
寫多個foreach(root.Elements中的xElement x)似乎是多余的!
尋找不太冗長的方法,最好使用C#
更新-是的-輸入位於CDATA中,請放心,這不是我的設計,我可以對其進行零控制!
假設故意的CDATA
部分是故意的,並且您只對葉子元素的文本內容感興趣,則可以執行以下操作:
XElement root = XElement.Load(yourFile);
var data = from element in XElement.Parse(root.Value).Descendants("element")
select new {
Item = element.Elements("item").First().Value,
Value = element.Elements("int").First().Value
};
也就是說,如果生成輸入文件的代碼在您的控制之下,請考慮擺脫CDATA
部分。 在大多數情況下,以這種方式將XML存儲在XML中並不是可行的方法,因為它違反了標記語言的目的(並且需要多次解析器傳遞,如上所示)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.