<xsl:processing-instruction> |
Crée une instruction de traitement dans le document de sortie.
Catégorie
Instruction
Attributs obligatoires
name Définit le nom de cette instruction de traitement.
Attributs facultatifs
Aucun.
Contenu
Un modèle XSLT. Les contenus de ce modèle deviennent les données de l'instruction de traitement.
Apparaît dans
<xsl:processing-instruction> apparaît dans un modèle.
Défini dans
XSLT section 7.3, Création d'instructions de traitement.
Exemple
La feuille de style suivante ajoute une instruction de traitement à un document XML. L'instruction de traitement associe la feuille de style template.xsl à ce document XML. La feuille de style est la suivante :
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:output method="xml"/>

      <xsl:template match="/">
        <xsl:processing-instruction name="xml-stylesheet">href="docbook/html/docbook.xsl"
           type="text/xsl"</xsl:processing-instruction>
        <xsl:copy-of select="."/>
      </xsl:template>

    </xsl:stylesheet>
La feuille de style simple suivante utilise simplement l'élément <xsl:copy-of> pour copier le document d'entrée dans l'arborescence de résultat, en y ajoutant également une instruction de traitement. La feuille de style est appliquée au document XML suivant :
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Une fois la transformation exécutée, les résultats sont les suivants :
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="docbook/html/docbook.xsl" type="text/xsl"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Les contenus d'une instruction de traitement correspondent à du texte. Même si l'instruction de traitement générée semble contenir deux attributs, vous ne pouvez pas créer l'instruction de traitement comme suit :
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:output method="xml"/>

      <xsl:template match="/">
        <xsl:processing-instruction name="xml-stylesheet">

          <!-- This doesn't work!  You can't put <xsl:attribute>
               elements inside a <xsl:processing-instruction> element. -->

          <xsl:attribute name="href">
            <xsl:text>docbook/html/docbook.xsl</xsl:text>
          </xsl:attribute>
          <xsl:attribute name="type">
            <xsl:text>text/xsl</xsl:text>
          </xsl:attribute>
        </xsl:processing-instruction>
        <xsl:copy-of select="."/>
      </xsl:template>

    </xsl:stylesheet>
En essayant cette solution, le processeur XSLT génère une exception.