这个XPath有什么问题?

时间:2010-06-18 08:12:29

标签: xml linq xpath

我有这个XML:

<rootCategories>
    <category id="1">
        <category id="2">
            <category id="3">
                <category id="4" />
                <category id="5" />
                <category id="6" />
            </category>
            <category id="7" />
        </category>
    </category>
</rootCategories>

我有这个LINQ声明:

int count = doc.XPathSelectElements("//category").Elements().Count();

我想要的是所有“类别”元素,基本上,扁平化为一个我可以预告的数组。

问题是返回的计数值(如果被淘汰,返回的数组)显示没有返回最顶层的类别元素。在这种情况下,我得到了6个“类别”元素,而不是7个。

我正在使用从[本页]学到的XPath( http://www.developer.com/xml/article.php/10929_3383961_1/NET-and-XML-XPath-Queries.htm)。

有人可以告诉我为什么以及如何解决这个问题?这是XPath查询中的错误吗?

1 个答案:

答案 0 :(得分:6)

好的,这证明一个良好的睡眠是大多数问题(或者至少是我的)的答案,因为解决方案只是删除:

.Elements()

来自LINQ声明。

当然,该调用只返回XPathSelectElements语句返回的那些元素的内部元素。