我有一个xml,我正在尝试获取特定xname的元素 所以我试着做一些像......
XDocument doc = XDocument.Load("C://some.xml");
XDocument subDoc = new XDocument(doc.Elements("data"));
但是在subDoc中没有返回任何元素,我知道我有一个名为data的元素,我也试过了命名空间但没有返回任何元素。
我想知道我是否只能获得数据(包括)和他的孩子的XDocument。
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>
有人可以帮忙吗?
由于
答案 0 :(得分:7)
将System.Linq命名空间指令添加到文件的顶部:
using System.Linq;
试试这个:
XDocument doc = XDocument.Load("c:\\some.xml");
XName name = XName.Get("data", doc.Root.GetDefaultNamespace().NamespaceName);
XDocument subDoc = new XDocument(doc.Descendants(name).First());
答案 1 :(得分:1)
您的直接元素节点可能不是“数据”...尝试后代
doc.Descendants("data");