XPath encuentra si el nodo existe

Resuelto EddyR asked hace 15 años • 6 respuestas

Usando una consulta XPath, ¿cómo puedo saber si existe un nodo (etiqueta)?

Por ejemplo, si necesitara asegurarme de que la página de un sitio web tenga la estructura básica correcta, como /html/bodyy /html/head/title.

EddyR avatar Apr 20 '09 18:04 EddyR
Aceptado
<xsl:if test="xpath-expression">...</xsl:if>

así por ejemplo

<xsl:if test="/html/body">body node exists</xsl:if>
<xsl:if test="not(/html/body)">body node missing</xsl:if>
Patrick McDonald avatar Apr 20 '2009 11:04 Patrick McDonald

Pruebe la siguiente expresión:boolean(path-to-node)

annesley avatar Sep 20 '2010 12:09 annesley

Patrick tiene razón, tanto en el uso de xsl:ifcomo en la sintaxis para comprobar la existencia de un nodo. Sin embargo, como implica la respuesta de Patrick, no existe un xsl equivalente a if-then-else, por lo que si está buscando algo más parecido a if-then-else, normalmente es mejor usar xsl:choosey xsl:otherwise. Entonces, la sintaxis de ejemplo de Patrick funcionará, pero esta es una alternativa:

<xsl:choose>
 <xsl:when test="/html/body">body node exists</xsl:when>
 <xsl:otherwise>body node missing</xsl:otherwise>
</xsl:choose>
gkrogers avatar Jul 04 '2011 10:07 gkrogers