Domanda

Credo che sia possibile, ma non riuscivo a capire la sintassi. Qualcosa di simile a questo:

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

, ma questo non è corretto.

È stato utile?

Soluzione

Usa :

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

Nel caso in cui solo elemento nodi foglia sono voluto (e questo esigenze chiarimento - sono elementi che hanno figli non elemento considerato nodi foglia?), Allora la seguente espressione XPath seleziona loro:

//*[not(*)]

Entrambe le espressioni sopra sono probabilmente il più breve che seleziona i nodi desiderati (o qualsiasi nodo o elemento - nodi foglia).

Altri suggerimenti

Tutti gli elementi con nessun bambino elemento

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

Perché meno o uguale per 1?

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

effettuare prove etc in questo sito http://www.whitebeam.org/ biblioteca / guida / note tecniche / xpathtestbed.rhtm

Piuttosto utile ..

Sto aggiungendo questa risposta XSLT poiché sembra partite anteriori di Google mancano di tale soluzione una:

Dopo una lunga lotta con l'estrazione di CDATA come XML, alla fine, questa espressione ha funzionato meglio per me:

<xsl:template match="*[not(child::*)]/text()">
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top