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 に答える