4

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

4

2 回答 2

11
XDocument xDoc = XDocument.Parse(xml);
var count = xDoc.Descendants().Where(n => !n.Elements().Any()).Count();

或如@sixlettervariables 建议的那样

var count = xDoc.Descendants().Count(e => !e.HasElements);
于 2012-07-12T15:26:30.420 回答
4

以下是使用 XPath 的方法(借用 helio):

XmlDocument doc = new XmlDocument();
doc.LoadXml("...");
int count = doc.SelectNodes("//*[not(*)]").Count;
  • //表示匹配所有后代
  • *表示任何 XML 元素
  • []表示一个条件
  • not(*)表示当前元素没有子元素
于 2012-07-12T15:28:43.953 回答