我有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;
这有什么问题?
答案 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");