English | >> Français << | Deutsch | Magyar | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Page 66 << | Précédent | Suivant | Contenu | Index des éléments

La fonction generate-id() génère des identifiants (id) conformes à la spécification XML. Feuille de style XSLT 2 utilise cette fonction pour ajouter un identifiant id à tous les éléments du fichier XML source.

Feuille de style XSLT 1

Source XML
<source>

<AAA name="top">
     <BBB pos="1" val="bbb">11111</BBB>
     <BBB>22222</BBB>
</AAA>
<AAA name="bottom">
     <BBB>33333</BBB>
     <BBB>44444</BBB>
</AAA>

</source>

Sortie
<DIV>
  <B>generate-id(//AAA) : </B>d0e3</DIV>
<DIV>
  <B>generate-id(//BBB) : </B>d0e5</DIV>
<DIV>
  <B>generate-id(//AAA[1]) : </B>d0e3</DIV>
<DIV>
  <B>generate-id(//*[1]) : </B>d0e1</DIV>
<DIV>
  <B>generate-id(//xslTutorial/*[1]) : </B>
</DIV>

Vue HTML
generate-id(//AAA) : d0e3
generate-id(//BBB) : d0e5
generate-id(//AAA[1]) : d0e3
generate-id(//*[1]) : d0e1
generate-id(//xslTutorial/*[1]) :
Feuille de style XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <DIV>
          <B>
               <xsl:text>generate-id(//AAA) : </xsl:text>
          </B>
          <xsl:value-of select="generate-id(//AAA) "/>
     </DIV>
     <DIV>
          <B>
               <xsl:text>generate-id(//BBB) : </xsl:text>
          </B>
          <xsl:value-of select="generate-id(//BBB) "/>
     </DIV>
     <DIV>
          <B>
               <xsl:text>generate-id(//AAA[1]) : </xsl:text>
          </B>
          <xsl:value-of select="generate-id(//AAA[1]) "/>
     </DIV>
     <DIV>
          <B>
               <xsl:text>generate-id(//*[1]) : </xsl:text>
          </B>
          <xsl:value-of select="generate-id(//*[1]) "/>
     </DIV>
     <DIV>
          <B>
               <xsl:text>generate-id(//xslTutorial/*[1]) : </xsl:text>
          </B>
          <xsl:value-of select="generate-id(//xslTutorial/*[1]) "/>
     </DIV>
</xsl:template>


</xsl:stylesheet>


Feuille de style XSLT 2

Source XML
<source>

<AAA name="top">
     <BBB pos="1" val="bbb">11111</BBB>
     <BBB>22222</BBB>
</AAA>
<AAA name="bottom">
     <BBB>33333</BBB>
     <BBB>44444</BBB>
</AAA>

</source>

Sortie
<source id="d0e1">

  <AAA id="d0e3" name="top">

     <BBB id="d0e5" pos="1" val="bbb">11111</BBB>

     <BBB id="d0e8">22222</BBB>

  </AAA>

  <AAA id="d0e12" name="bottom">

     <BBB id="d0e14">33333</BBB>

     <BBB id="d0e17">44444</BBB>

  </AAA>

</source>

Vue HTML
11111 22222 33333 44444
Feuille de style XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="*">
     <xsl:copy>
          <xsl:attribute name="id">
               <xsl:value-of select="generate-id()"/>
          </xsl:attribute>
          <xsl:for-each select="@*">
               <xsl:attribute name="{name()}">
                    <xsl:value-of select="."/>
               </xsl:attribute>
          </xsl:for-each>
          <xsl:apply-templates/>
     </xsl:copy>
</xsl:template>


</xsl:stylesheet>