这个XPath有什么问题?

Mat*_*t W 2 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>
Run Code Online (Sandbox Code Playgroud)

我有这个LINQ声明:

int count = doc.XPathSelectElements("//category").Elements().Count();
Run Code Online (Sandbox Code Playgroud)

我想要的是所有"类别"元素,基本上,扁平成一个数组,然后我可以预约.

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

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

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

Mat*_*t W 6

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

.Elements()
Run Code Online (Sandbox Code Playgroud)

来自LINQ声明.

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