XSL xsl: template match = “/”

Solo estoy aprendiendo XML y cómo usar archivos XSL. En un archivo XSL encontré el siguiente término:

xsl:template match="/" 

¿Qué significa esto? ¿Y qué podría usar en lugar de / ? ¿Podría escribir table o cualquier otra etiqueta HTML en lugar de / ?

El valor del atributo de match de la instrucción debe ser un patrón de coincidencia .

Los patrones de coincidencia forman un subconjunto del conjunto de todas las expresiones XPath posibles . La primera limitación natural es que un patrón de coincidencia debe seleccionar un conjunto de nodos. También hay otras limitaciones. En particular, los ejes inversos no están permitidos en los pasos de ubicación (pero se pueden especificar dentro de los predicados). Además, no se permiten referencias de variables o parámetros en XSLT 1.0, pero su uso es legal en XSLT 2.x.

/ en XPath denota el nodo raíz o documento. En XPath 2.0 (y, por lo tanto, XSLT 2.x), esto también se puede escribir como document-node() .

Un patrón de coincidencia puede contener la // abreviatura .

Ejemplos de patrones de coincidencia:

  

se puede aplicar a cualquier elemento llamado table .

  

se puede aplicar a cualquier elemento llamado y cuyo padre es un elemento llamado x .

  

se puede aplicar a cualquier elemento.

  

solo se puede aplicar al elemento superior de un documento XML.

  

se puede aplicar a cualquier atributo.

  

se puede aplicar a cualquier nodo de texto.

  

se puede aplicar a cualquier nodo de comentario.

  

se puede aplicar a cualquier nodo de instrucción de procesamiento.

  

se puede aplicar a cualquier nodo: elemento, texto, comentario o instrucción de procesamiento.

Vale la pena señalar, ya que es confuso para las personas nuevas en XML, que el nodo raíz (o documento) de un documento XML no es el elemento de nivel superior. Es el padre del elemento de nivel superior. Esto es confuso porque no parece que el elemento de nivel superior pueda tener un padre. ¿No es el nivel superior?

Pero mira esto, un documento XML bien formado:

    

La raíz de este documento tiene tres elementos secundarios: una instrucción de procesamiento, un comentario y un elemento.

Entonces, por ejemplo, si quisiera escribir una transformación que se deshizo de ese comentario, pero queda en los comentarios que aparecen en cualquier otro lugar del documento, debe agregar esto a la transformación de identidad:

  

Incluso más simple (y más comúnmente útil), aquí hay un patrón XPath que coincide con el elemento de nivel superior del documento, independientemente de su nombre: /* .

El atributo de coincidencia indica en qué partes se va a aplicar la transformación de la plantilla. En ese caso particular, “/” significa la raíz del documento xml. El valor que debe proporcionar en el atributo de coincidencia debe ser la expresión XPath. XPath es el idioma que debe usar para referir partes específicas del archivo xml de destino.

Para obtener una comprensión significativa de qué más puede poner en el atributo de coincidencia, necesita comprender qué es xpath y cómo usarlo. Sugiero que mires los enlaces que he proporcionado para ti en la parte inferior de la respuesta.

¿Podría escribir “tabla” o cualquier otra etiqueta html en lugar de “/”?

Sí tu puedes. Pero esto depende de qué es exactamente lo que estás tratando de hacer. si el archivo xml de destino contiene elementos HMTL y está intentando aplicar esta plantilla xsl: en ellos, tiene sentido usar table, div o anithing else.

Aquí algunos enlaces:

  • Plantillas XSL
  • XPath
  • Un buen libro sobre XML – Beginning XML