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