簡體   English   中英

如何使用linq2xml或Xquery遍歷xml

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM