Je crois que c'est possible mais je n'ai pas pu comprendre la syntaxe. Quelque chose comme ça:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
mais ce n'est pas correct.
Utilisation :
//node()[not(node())]
Si seuls les nœuds feuille element sont souhaités (et que cela nécessite une clarification - les éléments dont les enfants non-éléments sont-ils considérés comme des nœuds feuille?), L'expression XPath suivante les sélectionne:
//*[not(*)]
Les deux expressions ci-dessus sont probablement les plus courtes qui sélectionnent les nœuds souhaités (nœuds any-node ou noeuds élément-feuille).
Tous les éléments sans enfant d'élément
//*[not(child::*)]
J'ajoute cette réponse XSLT car il semble que les correspondances de google manquent d'une telle solution:
Après une longue lutte pour extraire CDATA au format XML, cette expression a finalement fonctionné de manière optimale pour moi:
<xsl:template match="*[not(child::*)]/text()">