Frage

Ich glaube, es ist möglich, kann aber nicht die Syntax herauszufinden. So etwas wie folgt aus:

xmlNode.SelectNodes("//*[count(child::*) <= 1]")

, aber das ist nicht korrekt.

War es hilfreich?

Lösung

Mit

//node()[not(node())]

Falls nur -Element Blattknoten gesucht werden (und diese Klarstellung Bedürfnisse - sind Elemente, die nicht-Element Kinder als Blattknoten haben?), Dann die folgenden XPath-Ausdruck wählt sie:

//*[not(*)]

Beide Ausdrücke oben sind wahrscheinlich die kürzeste , dass die gewünschten Knoten auszuwählen (entweder beliebigen Knoten oder Element - Endknoten).

Andere Tipps

Alle Elemente ohne Element Kind

//*[not(child::*)]

Warum weniger oder gleich zu 1?

xmlNode.SelectNodes("//*[count(child::*) = 0]")

Make-Tests usw. auf dieser Seite http://www.whitebeam.org/ Bibliothek / guide / TechNotes / xpathtestbed.rhtm

Pretty hilfreich ..

Ich füge dieses XSLT Antwort, da es Googles Front Matches fehlt eine solche Lösung scheint:

Nach einem langen Kampf mit CDATA als XML-Extraktion, schließlich arbeitete dieser Ausdruck am besten für mich:

<xsl:template match="*[not(child::*)]/text()">
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top