C# 用C计算XML字符串的叶子数#

C# 用C计算XML字符串的叶子数#,c#,.net,xml,C#,.net,Xml,有没有一种简单的方法可以用C#获取XML字符串(XML文档以字符串形式提供)的所有叶子数 或者按照@sixtlettervariables的建议 var count = xDoc.Descendants().Count(e => !e.HasElements); 下面介绍如何使用XPath(借用helio): /表示匹配所有子体 *表示任何XML元素 []表示一种情况 not(*)表示当前元素没有子元素 您必须遍历XML树,并统计所有没有子体的节点。可能有一种方法可以通过Linq语句来

有没有一种简单的方法可以用C#获取XML字符串(XML文档以字符串形式提供)的所有叶子数

或者按照@sixtlettervariables的建议

var count = xDoc.Descendants().Count(e => !e.HasElements);

下面介绍如何使用XPath(借用helio):

  • /
    表示匹配所有子体
  • *
    表示任何XML元素
  • []
    表示一种情况
  • not(*)
    表示当前元素没有子元素

您必须遍历XML树,并统计所有没有子体的节点。可能有一种方法可以通过Linq语句来实现。另请参见xDoc.SUNDERNATES().Count(e=>!e.HasElements)@sixlettervariables)的可能重复项或简单的重复项。更新了答案
var count = xDoc.Descendants().Count(e => !e.HasElements);
XmlDocument doc = new XmlDocument();
doc.LoadXml("...");
int count = doc.SelectNodes("//*[not(*)]").Count;