簡體   English   中英

使用C#中的XMLReader忽略XML中的父節點

[英]Ignoring parent node in XML using XMLReader in C#

我有一個XML文件,必須從中提取一些特定的節點並將其放入SQL表中。

我正在使用XmlReader並在XmlReader.Name上具有開關大小寫

這只是一個只有很少節點的示例,僅用於說明。

<products>
   <product>
       <description>Nothing</description>
       <cost>$34.78</cost>
       <inventory>166</inventory>
   </product>
   <product>
       <description>Nike Cap 17893</description>
       <cost>$29.99</cost>
       <inventory>54</inventory>
   </product>
</products>

這個想法是,如果description節點中沒有內容,我應該忽略整個產品,然后移至下一個產品。

在這種情況下,我想使用XmlReader.Skip(),但似乎只跳過了孩子節點,但跳過了父節點。

只是想知道C#是否提供任何忽略父節點的方法?

使用Linq To Xml,您可以輕松忽略所有“無”元素,而僅處理其他元素。

這是快速示例。

XElement root = XElement.Load("file.xml");
IEnumerable<XElement> productsWithoutNothing = from product in root.Elements("product")
                                               where (string)product.Element("description") != "Nothing"
                                               select product;

我認為如果使用XSL過濾節點將容易得多。

步驟1:使用XSL獲得具有描述的(父)節點列表

第2步:遍歷此過濾集

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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