【发布时间】:2014-07-25 14:25:45
【问题描述】:
我有一个 XML 文件,我必须从中提取一些特定节点并将它们放入 SQL 表中。
我正在使用 XmlReader 并在 XmlReader.Name 上有 switch case
这里只是一个示例,节点很少,仅用于说明。
<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>
如果描述节点中没有任何内容,我应该忽略整个产品并转移到下一个产品。
我想在这种情况下使用 XmlReader.Skip(),但它似乎只跳过了子节点,但跳过了父节点。
只是想知道 C# 是否提供任何方法来忽略父节点?
【问题讨论】:
-
这个 xml 文件有多大?你不能使用 Linq to XML 吗?
-
XML 文件通常包含 10,000 到 12,000 个产品
-
@bluepiranha:听起来您应该可以轻松地将其加载到内存中,这将使其比使用 XmlReader 更容易处理。
-
@JonSkeet 请原谅我的新手,但是当您说将其加载到内存中时,您建议我读取 XML 文件的 C# API 类是什么?
-
按照 Selman22 的建议使用 LINQ to XML,例如
XDocument doc = XDocument.Load("products.xml")