我正在尝试使用XPathDocument
计算xml文档中的所有节点使用的代码是
var xmlPathDoc = new XPathDocument(new StringReader(xml));
XPathNavigator documentNav = xmlPathDoc.CreateNavigator();
当我不知道节点的名称时,有没有办法计算这些
我想使用像
这样的东西int nodeCount = documentNav.Select("/").Count;
但不确定在选择部分中放入什么
感谢
西蒙
答案 0 :(得分:3)
XmlNode node = myDoc.SelectSingleNode("/");
int i = node.SelectNodes("descendant::*").Count;
答案 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.