具有XPathDocument的节点数

时间:2012-10-11 14:55:30

标签: c# xml

我正在尝试使用XPathDocument

计算xml文档中的所有节点

使用的代码是

var xmlPathDoc = new XPathDocument(new StringReader(xml));
XPathNavigator documentNav = xmlPathDoc.CreateNavigator();

当我不知道节点的名称时,有没有办法计算这些

我想使用像

这样的东西
int nodeCount = documentNav.Select("/").Count;

但不确定在选择部分中放入什么

感谢

西蒙

3 个答案:

答案 0 :(得分:3)

XmlNode node = myDoc.SelectSingleNode("/");

int i = node.SelectNodes("descendant::*").Count;

另请参阅Count Total Number of XmlNodes in C#

答案 1 :(得分:2)

您可以使用XDocument.Descendents并计算它们:

var doc = XDocument.Parse(xml);
var count = doc.Descendants().Count();

答案 2 :(得分:0)

您不需要XPath。首先获取DOM对象并获取所有元素的节点列表并获取其计数。

public virtual XmlNodeList GetElementsByTagName(String tagname )


    Returns a NodeList of all the Elements with a given tag name in the order 
    in which they are encountered in a preorder traversal of the Document tree.

        Parameters:
            tagname - The name of the tag to match on. The special value "*"
            matches all tags. 
        Returns:
            A new NodeList object containing all the matched Elements.