UAla!!

Debug de XSLT’s

18 Marzo 2008 · Dejar un comentario

En algunas ocasiones, cuando realizamos transformaciones de estructuras XML con hojas de estilos XSL y no conocemos la estructura del fichero XML que transformamos, necesitamos una utilidad que nos muestre todo el contenido completo.

Esta situación, a mi, me ocurre con las DataViewWebPart y DataFormWebPart de SharePoint, que permiten hacer consultas y que posteriormente se transforman con XSLT’s, o con la nueva ContentByQuery de MOSS. Que estructura real tienen los datos que estamos recuperando?, que nodos están disponibles?, que contenido tienen?

Bueno, pues para esos casos, aquí os paso un trozo de XSL muy útil que nos mostrará en formato plano el origen de datos XML.

<xsl:template match="node()|@*" mode="debug">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()" mode="debug" />
    </xsl:copy>
</xsl:template>

Este template aplica a todos los nodos “node()” y atributos “@” y los copia a la salida junto con todos sus hijos. Fijaros que se ha añadido el mode=”debug” para que únicamente aplique si realizamos una llamada específica. De este modo no afectará al resto de templates del XSLT.

Para realizar una llamada a este template y mostrar la estructura, lo podemos hacer de la siguiente forma:

<xsl:template match="/">
    <xmp><xsl:apply-templates mode="debug" /></xmp>
</xsl:template>

El tag <xmp> está obsoleto pero nos sirve para mostrar facilmente la estructura de nodos del XML por el navegador.

Categorías: xml

0 respuestas hasta el momento ↓

  • Todavía no hay comentarios... Empiece usted rellenando el siguiente formulario.

Dejar un comentario