XPath encuentra si el nodo existe
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/body
y /html/head/title
.
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>
Pruebe la siguiente expresión:boolean(path-to-node)
Patrick tiene razón, tanto en el uso de xsl:if
como 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:choose
y 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>