Ich glaube, es ist möglich, konnte aber die Syntax nicht herausfinden. Etwas wie das:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
aber das ist nicht richtig.
Benutzen :
//node()[not(node())]
Wenn nur element leaf-Knoten gewünscht werden (und dies muss geklärt werden - werden Elemente, die keine Element-untergeordneten Elemente sind, als leaf-Knoten betrachtet?), Werden sie vom folgenden XPath-Ausdruck ausgewählt:
//*[not(*)]
Beide Ausdrücke sind wahrscheinlich die kürzesten , die die gewünschten Knoten auswählen (entweder Knoten mit beliebigem Knoten oder Elementknoten).
Alle Elemente ohne untergeordnetes Element
//*[not(child::*)]
Warum weniger oder gleich bis 1?
xmlNode.SelectNodes("//*[count(child::*) = 0]")
Machen Sie auf dieser Site Tests usw. http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
Ziemlich hilfreich ..
Ich füge diese XSLT-Antwort hinzu, da es so aussieht, als hätten die Spiele von Google keine solche Lösung:
Nach langem Kampf mit dem Extrahieren von CDATA als XML funktionierte dieser Ausdruck schließlich am besten für mich:
<xsl:template match="*[not(child::*)]/text()">