syntax - examples - ¿Cómo seleccionar todos los nodos de hoja usando la expresión XPath?
xpath selenium (4)
¿Por qué menos o igual a 1?
xmlNode.SelectNodes("//*[count(child::*) = 0]")
Haga pruebas, etc. en este sitio http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
Bastante útil ...
Creo que es posible, pero no pude entender la sintaxis. Algo como esto:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
Pero esto no es correcto.
Cualquier elemento sin elemento niño
//*[not(child::*)]
Estoy agregando esta respuesta XSLT ya que parece que las coincidencias frontales de Google carecen de esa solución:
Después de una larga lucha con la extracción de CDATA como XML, finalmente, esta expresión funcionó mejor para mí:
<xsl:template match="*[not(child::*)]/text()">
Uso :
//node()[not(node())]
En caso de que solo se necesiten nodos de hoja de elemento (y esto necesita aclaración: ¿los elementos que tienen hijos sin elemento se consideran nodos hoja?), Entonces la siguiente expresión XPath los selecciona:
//*[not(*)]
Ambas expresiones anteriores son probablemente las más cortas que seleccionan los nodos deseados (nodos any-node o element-leaf).