XElement XPathSelectElements C#对我不起作用

时间:2013-05-27 08:59:42

标签: .net linq-to-xml

我有XElement x

<projects><project><id>2</id><name>Project A</name></project>
<project><id>7</id><name>Blue-Leafed Project B</name></project></projects>

我正在使用XPathSelectElements并希望获得2个节点:

var projects = x.XPathSelectElements("/projects/project");

但是result = null;

我也试图略微改变XPath

result = null;

这有什么问题?

2 个答案:

答案 0 :(得分:1)

最有可能的是您将文档加载为XElement,因此x已经引用了根节点projects。您的查询必须与该节点相关,并且该节点显然没有projects子节点。您尝试选择相对于project节点的子projects元素,因此您的查询应为:

var projects = x.XPathSelectElements("project");

虽然在这种情况下,您实际上并不需要使用xpath,但只需使用Elements()方法。

var projects = x.Elements("project");

您通常应该使用XDocument个对象来加载文档而不是XElement,否则您会遇到这些问题。

答案 1 :(得分:0)

你可以尝试这个:

var projects = x.XPathSelectElements("./projects/project");