为什么此XPathSelectElements()返回false?

时间:2018-07-05 20:31:57

标签: c# xml xpath xelement

请考虑以下代码段:

var xpath = "//i[@a='1']";
var item = new XElement("i",
    new XAttribute("a", "1"),
    new XAttribute("b", "2"),
    new XAttribute("c", "3"));

Console.WriteLine(item); // <i a="1" b="2" c="3" />
Console.WriteLine("{0} = {1}", xpath, item.XPathSelectElements(xpath).Any());

我期望.Any()的结果是true,但是我一直得到false

2 个答案:

答案 0 :(得分:0)

问题出在您的 root 元素上。

您也可以使用此xml进行测试

var item = new XDocument(new XElement("i",
                new XAttribute("a", "1"),
                new XAttribute("b", "2"),
                new XAttribute("c", "3")));

这将返回 TRUE

答案 1 :(得分:0)

使用self::i[@a='1']或将XElement添加到XDocument即可达到目的。