首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XDocument元素返回null

XDocument元素返回null
EN

Stack Overflow用户
提问于 2013-07-02 22:14:17
回答 2查看 3.7K关注 0票数 3

我有一个xml,我正在尝试获取特定xname的元素,所以我尝试做一些类似于...

代码语言:javascript
运行
复制
XDocument doc = XDocument.Load("C://some.xml");
XDocument subDoc = new XDocument(doc.Elements("data"));

但在subDoc中没有返回任何元素,我知道我有一个名为data的元素,我也尝试过命名空间,但没有返回任何元素。

我想知道是否我可以得到一个只有数据(包括)和他的孩子的XDocument。

代码语言:javascript
运行
复制
some.xml

<chart xmlns="http://www.somenamespace.com">
  <data>
    <table>
      <columns>
        <column id="001" label="A"/>
        <column id="002" label="B"/>
        <column id="003" label="C"/>
        <column id="004" label="D"/>
      </columns>
      <rows>
        <row>
          <cell>
            <float value="30"/>
          </cell>
          <cell>
            <float value="35"/>
          </cell>
          <cell>
            <float value="15"/>
          </cell>
          <cell>
            <float value="18"/>
          </cell>
        </row>
      </rows>
    </table>
  </data>
 <render />
</chart>

有人能帮上忙吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-02 22:21:21

将System.Linq命名空间指令添加到文件的顶部:

代码语言:javascript
运行
复制
using System.Linq;

然后试试这个:

代码语言:javascript
运行
复制
XDocument doc = XDocument.Load("c:\\some.xml");
XName name = XName.Get("data", doc.Root.GetDefaultNamespace().NamespaceName);
XDocument subDoc = new XDocument(doc.Descendants(name).First());
票数 7
EN

Stack Overflow用户

发布于 2013-07-02 22:19:37

您的直接元素节点可能不是"data"...try子代

代码语言:javascript
运行
复制
doc.Descendants("data");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17427930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档