XElement - 读取节点 C#
XElement - reading the nodes C#
我有一个 XML 如下所示:
<?xml version="1.0"?>
<productfeed>
<product>
<name>x</name>
<etc>z</etc>
</product>
<product>
<name>x</name>
<etc>z</etc>
</product>
</productfeed>
我今天尝试使用 LINQ 和 XElement 从 XML 检索数据。我设法加载了文件,但是我无法访问 productfeed
节点(它 returns 为空)。有趣的是,我可以直接从根节点遍历 product
个节点,而我读到一个节点不应该那样跳过。我是不是理解错了,也许 productfeed
节点已经在根目录中了,但是我怎么才能得到它的纯内容呢?
XElement root = XElement.Load("...path..."); // works
XElement productFeed = root.Element("productfeed"); // returns null
IEnumerable<XElement> products = root.Elements("product"); // works
正式地,您应该将其加载到 XDocument 中。那将有一个 <productfeed>
元素作为根 属性。
XElement让你跳过这一步,它可以同时充当Document和root。修复非常简单:
XElement productFeed = root; //.Element("productfeed");
XElement
和 XDocument
解析相同的内容,但 XDocument 有一个(更完整的)文档包装器,在处理 <? >
处理指令等时您将需要它
我有一个 XML 如下所示:
<?xml version="1.0"?>
<productfeed>
<product>
<name>x</name>
<etc>z</etc>
</product>
<product>
<name>x</name>
<etc>z</etc>
</product>
</productfeed>
我今天尝试使用 LINQ 和 XElement 从 XML 检索数据。我设法加载了文件,但是我无法访问 productfeed
节点(它 returns 为空)。有趣的是,我可以直接从根节点遍历 product
个节点,而我读到一个节点不应该那样跳过。我是不是理解错了,也许 productfeed
节点已经在根目录中了,但是我怎么才能得到它的纯内容呢?
XElement root = XElement.Load("...path..."); // works
XElement productFeed = root.Element("productfeed"); // returns null
IEnumerable<XElement> products = root.Elements("product"); // works
正式地,您应该将其加载到 XDocument 中。那将有一个 <productfeed>
元素作为根 属性。
XElement让你跳过这一步,它可以同时充当Document和root。修复非常简单:
XElement productFeed = root; //.Element("productfeed");
XElement
和 XDocument
解析相同的内容,但 XDocument 有一个(更完整的)文档包装器,在处理 <? >
处理指令等时您将需要它