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

L'axe child:: peut être omis d'une étape de localisation, car il constitue l'axe par défaut. L'axe attribute:: peut être abrégé en @. // est la forme abrégée de l'axe /descendant-or-self::, . de l'axe self:: et .. de l'axe parent::.

Feuille de style XSLT 1

Source XML
<source>

<AAA id="a1" pos="start">
     <BBB id="b1"/>
     <BBB id="b2"/>
</AAA>
<AAA id="a2">
     <BBB id="b3"/>
     <BBB id="b4"/>
     <CCC id="c1">
          <CCC id="c2"/>
     </CCC>
     <BBB id="b5">
          <CCC id="c3"/>
     </BBB>
</AAA>

</source>

Sortie
<H3>AAAa1</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>child::BBB/attribute::id</TD>
     <TD>BBB/@id</TD>
  </TR>
  <TR>
     <TD>b1</TD>
     <TD>b1</TD>
  </TR>
</TABLE>

<H3>AAAa2</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>child::BBB/attribute::id</TD>
     <TD>BBB/@id</TD>
  </TR>
  <TR>
     <TD>b3</TD>
     <TD>b3</TD>
  </TR>
</TABLE>

Vue HTML

AAAa1

full abbreviated
child::BBB/attribute::id BBB/@id
b1 b1

AAAa2

full abbreviated
child::BBB/attribute::id BBB/@id
b3 b3
Feuille de style XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="AAA">
     <H3>
          <xsl:value-of select="name()"/>
          <xsl:text/>
          <xsl:value-of select="@id"/>
     </H3>
     <TABLE border="1">
          <TR>
               <TH>full</TH>
               <TH>abbreviated</TH>
          </TR>
          <TR>
               <TD>
                    <xsl:text>child::BBB/attribute::id</xsl:text>
               </TD>
               <TD>
                    <xsl:text>BBB/@id</xsl:text>
               </TD>
          </TR>
          <TR>
               <TD>
                    <xsl:value-of select="child::BBB/attribute::id"/>
               </TD>
               <TD>
                    <xsl:value-of select="BBB/@id"/>
               </TD>
          </TR>
     </TABLE>
</xsl:template>


</xsl:stylesheet>


Feuille de style XSLT 2

Source XML
<source>

<AAA id="a1" pos="start">
     <BBB id="b1"/>
     <BBB id="b2"/>
</AAA>
<AAA id="a2">
     <BBB id="b3"/>
     <BBB id="b4"/>
     <CCC id="c1">
          <CCC id="c2"/>
     </CCC>
     <BBB id="b5">
          <CCC id="c3"/>
     </BBB>
</AAA>

</source>

Sortie
<H3>BBBb1</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>parent::*/attribute::id</TD>
     <TD>../@id</TD>
  </TR>
  <TR>
     <TD>a1</TD>
     <TD>a1</TD>
  </TR>
</TABLE>

<H3>BBBb2</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>parent::*/attribute::id</TD>
     <TD>../@id</TD>
  </TR>
  <TR>
     <TD>a1</TD>
     <TD>a1</TD>
  </TR>
</TABLE>



<H3>BBBb3</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>parent::*/attribute::id</TD>
     <TD>../@id</TD>
  </TR>
  <TR>
     <TD>a2</TD>
     <TD>a2</TD>
  </TR>
</TABLE>

<H3>BBBb4</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>parent::*/attribute::id</TD>
     <TD>../@id</TD>
  </TR>
  <TR>
     <TD>a2</TD>
     <TD>a2</TD>
  </TR>
</TABLE>




<H3>BBBb5</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>parent::*/attribute::id</TD>
     <TD>../@id</TD>
  </TR>
  <TR>
     <TD>a2</TD>
     <TD>a2</TD>
  </TR>
</TABLE>

Vue HTML

BBBb1

full abbreviated
parent::*/attribute::id ../@id
a1 a1

BBBb2

full abbreviated
parent::*/attribute::id ../@id
a1 a1

BBBb3

full abbreviated
parent::*/attribute::id ../@id
a2 a2

BBBb4

full abbreviated
parent::*/attribute::id ../@id
a2 a2

BBBb5

full abbreviated
parent::*/attribute::id ../@id
a2 a2
Feuille de style XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="BBB">
     <H3>
          <xsl:value-of select="name()"/>
          <xsl:text/>
          <xsl:value-of select="@id"/>
     </H3>
     <TABLE border="1">
          <TR>
               <TH>full</TH>
               <TH>abbreviated</TH>
          </TR>
          <TR>
               <TD>
                    <xsl:text>parent::*/attribute::id</xsl:text>
               </TD>
               <TD>
                    <xsl:text>../@id</xsl:text>
               </TD>
          </TR>
          <TR>
               <TD>
                    <xsl:value-of select="parent::*/attribute::id"/>
               </TD>
               <TD>
                    <xsl:value-of select="../@id"/>
               </TD>
          </TR>
     </TABLE>
</xsl:template>


</xsl:stylesheet>


Feuille de style XSLT 3

Source XML
<source>

<AAA id="a1" pos="start">
     <BBB id="b1"/>
     <BBB id="b2"/>
</AAA>
<AAA id="a2">
     <BBB id="b3"/>
     <BBB id="b4"/>
     <CCC id="c1">
          <CCC id="c2"/>
     </CCC>
     <BBB id="b5">
          <CCC id="c3"/>
     </BBB>
</AAA>

</source>

Sortie
<H3>CCCc1</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>name(/descendant-or-self::*)</TD>
     <TD>name(//*)</TD>
  </TR>
  <TR>
     <TD>source</TD>
     <TD>source</TD>
  </TR>
</TABLE>

<H3>CCCc2</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>name(/descendant-or-self::*)</TD>
     <TD>name(//*)</TD>
  </TR>
  <TR>
     <TD>source</TD>
     <TD>source</TD>
  </TR>
</TABLE>



<H3>CCCc3</H3>
<TABLE border="1">
  <TR>
     <TH>full</TH>
     <TH>abbreviated</TH>
  </TR>
  <TR>
     <TD>name(/descendant-or-self::*)</TD>
     <TD>name(//*)</TD>
  </TR>
  <TR>
     <TD>source</TD>
     <TD>source</TD>
  </TR>
</TABLE>

Vue HTML

CCCc1

full abbreviated
name(/descendant-or-self::*) name(//*)
source source

CCCc2

full abbreviated
name(/descendant-or-self::*) name(//*)
source source

CCCc3

full abbreviated
name(/descendant-or-self::*) name(//*)
source source
Feuille de style XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="CCC">
     <H3>
          <xsl:value-of select="name()"/>
          <xsl:text/>
          <xsl:value-of select="@id"/>
     </H3>
     <TABLE border="1">
          <TR>
               <TH>full</TH>
               <TH>abbreviated</TH>
          </TR>
          <TR>
               <TD>
                    <xsl:text>name(/descendant-or-self::*)</xsl:text>
               </TD>
               <TD>
                    <xsl:text>name(//*)</xsl:text>
               </TD>
          </TR>
          <TR>
               <TD>
                    <xsl:value-of select="name(/descendant-or-self::*)"/>
               </TD>
               <TD>
                    <xsl:value-of select="name(//*)"/>
               </TD>
          </TR>
     </TABLE>
     <xsl:apply-templates/>
</xsl:template>


</xsl:stylesheet>