Elemento <xsl:processing-instruction>
Genera un nodo di istruzioni di elaborazione nell'output.
<xsl:processing-instruction
name = "pi-name">
</xsl: processing-instruction>
Attributi
- Nome
Obbligatorio. Il nome NCName dell'istruzione di elaborazione.
Informazioni sull'elemento
Numero di occorrenze |
Illimitato |
Elementi padre |
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, elementi di output |
Elementi figlio |
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 |
Note
L'elemento <xsl:processing-instruction> genera un nodo di istruzioni di elaborazione nell'output. Il nome è indicato dall'attributo name. Il contenuto dell'elemento specifica il resto dell'istruzione di elaborazione.
La dichiarazione XML non è un'istruzione di elaborazione e deve essere generata impostando gli attributi in un elemento <xsl:output>.
Esempio
In questo esempio viene illustrato un modello che genera nell'output la dichiarazione XML e un'istruzione di elaborazione di un foglio di stile.
File 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>
File 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>
Prova
Copiare il codice riportato sopra e salvarlo nei file appropriati nell'unità locale.
Eseguire l'esempio usando l'utilità msxsl.exe, disponibile all'indirizzo www.microsoft.com/downloads/, dal prompt dei comandi come descritto di seguito:
msxsl customers.xml pi.xsl -o new-cust.xml
Output
Il risultato di questa trasformazione è lo stesso file XML con un nuovo foglio di stile incorporato. Il file di output, new-cust.xml, dovrebbe avere il seguente aspetto:
<?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>