Elemento <xsl:processing-instruction>

Genera un nodo de instrucción de procesamiento en el resultado.

<xsl:processing-instruction
  name = "pi-name">
</xsl: processing-instruction>

Atributos

  • name
    Necesario. El NCName de la instrucción de procesamiento.

Información del elemento

Número de apariciones

Ilimitado

Elementos primarios

xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, elementos resultantes

Elementos secundarios

xsl:apply-imports, xsl:apply-templates, xsl:call-template, xsl:choose, xsl:copy, xsl:copy-of, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:number, xsl:text, xsl:value-of, xsl:variable

Comentarios

El elemento <xsl:processing-instruction> genera un nodo de instrucción de procesamiento en el resultado. El atributo name indica el nombre. El contenido del elemento proporciona el resto de la instrucción de procesamiento.

La declaración XML no es una instrucción de procesamiento y debe generarse estableciendo atributos en un elemento <xsl:output>.

Ejemplo

En este ejemplo se muestra una plantilla que genera la declaración XML y una instrucción de procesamiento de la hoja de estilos en el resultado.

Archivo XML (customers.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="pi.xsl" ?>
<customers>
<customer>
   <name>James Smith</name>
   <address>123 Elm St.</address>
   <phone>(123) 456-7890</phone>
</customer>
<customer>
   <name>Amy Jones</name>
   <address>456 Oak Ave.</address>
   <phone>(156) 789-0123</phone>
</customer>
</customers>

Archivo XSLT (pi.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:output method='xml' version='1.0'/>
<xsl:template match="/">
  <xsl:processing-instruction name="xml-stylesheet">
  <xsl:text>type="text/xsl" href="style.xsl"</xsl:text>
  </xsl:processing-instruction>
  <xsl:apply-templates />
</xsl:template>

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

¡Inténtelo!

  1. Copie el código anterior y guárdelo en los archivos adecuados de la unidad local.

  2. Ejecute el ejemplo, mediante la utilidad msxsl.exe disponible en www.microsoft.com/downloads/, desde el símbolo del sistema, de la manera siguiente:

    msxsl customers.xml pi.xsl -o new-cust.xml

Resultados

El resultado de esta transformación es el mismo archivo XML con una nueva hoja de estilos en él incrustada. El archivo de salida, new-cust.xml, debe parecerse a este:

<?xml version="1.0" encoding="UTF-16"?>
<?xml-stylesheet type="text/xsl" href="style.xsl" ?>
<customers>
 <customer>
  <name>James Smith</name>
  <address>123 Elm St.</address>
  <phone>(123) 456-7890</phone>
 </customer>
 <customer>
  <name>Amy Jones</name>
  <address>456 Oak Ave.</address>
  <phone>(156) 789-0123</phone>
 </customer>
</customers>