cheap nfl jerseys china cheap nfl jerseys free shipping wholesale nfl jerseys china wholesale jerseys from china cheap nfl jerseys free shipping cheap nfl jerseys for sale cheap jerseys free shipping wholesale nfl jerseys from china cheap nfl jerseys sale cheap nike nfl jerseys china wholesale jerseys free shipping cheap nfl jerseys wholesale wholesale nfl jerseys online cheap nfl jerseys wholesale china jerseys wholesale cheap coach handbags outlet authentic designer handbags cheap coach handbags outlet cheap coach purses outlet discount coach bags coach bags sale coach purse outlet cheap real coach purses coach handbags sale online coach purse outlet michael kors outlet online store cheap michael kors bags cheap michael kors purse michael kors factory outlet online cheap michael kors handbags cheap michael kors purses michael kors bags outlet online cheap michael kors purse michael kors handbags discount cheap michael kors purse michael kors handbags discount
cheap nfl jerseys china cheap nfl jerseys free shipping wholesale nfl jerseys china wholesale jerseys from china cheap nfl jerseys free shipping cheap nfl jerseys for sale cheap jerseys free shipping wholesale nfl jerseys from china cheap nfl jerseys sale cheap nike nfl jerseys china wholesale jerseys free shipping cheap nfl jerseys wholesale wholesale nfl jerseys online cheap nfl jerseys wholesale china jerseys wholesale cheap coach handbags outlet authentic designer handbags cheap coach handbags outlet cheap coach purses outlet discount coach bags coach bags sale coach purse outlet cheap real coach purses coach handbags sale online coach purse outlet michael kors outlet online store cheap michael kors bags cheap michael kors purse michael kors factory outlet online cheap michael kors handbags cheap michael kors purses michael kors bags outlet online cheap michael kors purse michael kors handbags discount cheap michael kors purse michael kors handbags discount
>> pag. 17 << | indietro | avanti | indice | indice analitico

17.

L'asse child:: può essere omesso perchè è il default. L'asse attributo può essere abbreviato a @. // abbrevia /descendant-or-self::, . abbrevia self:: e .. abbrevia parent::.

XSLT stylesheet 1

XML Source
<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>

Output
<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>

HTML view

AAAa1

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

AAAa2

full abbreviated
child::BBB/attribute::id BBB/@id
b3 b3
XSLT stylesheet
<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>



XSLT stylesheet 2

XML Source
<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>

Output
<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>

HTML view

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
XSLT stylesheet
<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>



XSLT stylesheet 3

XML Source
<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>

Output
<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>

HTML view

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
XSLT stylesheet
<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>