Как выбрать все листовые узлы с помощью выражения XPath?
Я считаю, что это возможно, но не смог понять синтаксис. Что-то вроде этого:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
но это неверно.
Ответ 1
Использование
//node()[not(node())]
В случае, если требуются только узлы листового элемента (и для этого требуется уточнение - это элементы, которые имеют неэлементные дочерние элементы, рассматриваемые как листовые узлы?), тогда выбирается следующее выражение XPath:
//*[not(*)]
Оба вышеприведенных выражения, вероятно, являются самыми короткими, которые выбирают нужные узлы (любые - node или элементы - листовые узлы).