我有这个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查询中的错误吗?
答案 0 :(得分:6)
好的,这证明一个良好的睡眠是大多数问题(或者至少是我的)的答案,因为解决方案只是删除:
.Elements()
来自LINQ声明。
当然,该调用只返回XPathSelectElements语句返回的那些元素的内部元素。