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. 53 << | indietro | avanti | indice | indice analitico

53.

La funzione position restituisce un numero uguale alla posizione nel contesto (context position). La funzione last restituisce un numero uguale alla dimensione del contesto dalla espressione di valutazione del contesto. Questo stylesheet dimostra l'uso di queste funzioni in alcuni contesti. Questo stylesheet confronta gli elementi estratti con xsl:for-each ordinati e non.

XSLT stylesheet 1

XML Source
<source>

<AAA>
     <BBB>
          <CCC>Carl</CCC>
     </BBB>
     <BBB/>
     <BBB/>
</AAA>
<AAA>
     <BBB/>
     <BBB>
          <CCC>John</CCC>
          <CCC>Charles</CCC>
          <CCC>Robert</CCC>
          <CCC>Anthony</CCC>
     </BBB>
</AAA>

</source>

Output
<DIV>BBB(1/5)(2/5)(3/5)(4/5)(5/5)</DIV>
<DIV>CCC(1/5)(2/5)(3/5)(4/5)(5/5)</DIV>
<DIV>CCC(1/4)(2/4)(3/4)(4/4)</DIV>

HTML view
BBB(1/5)(2/5)(3/5)(4/5)(5/5)
CCC(1/5)(2/5)(3/5)(4/5)(5/5)
CCC(1/4)(2/4)(3/4)(4/4)
XSLT stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <DIV>
          <xsl:for-each select="//BBB">
               <xsl:call-template name="printout"/>
          </xsl:for-each>
     </DIV>
     <DIV>
          <xsl:apply-templates select="//CCC"/>
     </DIV>
     <DIV>
          <xsl:apply-templates select="//AAA[last()]//CCC"/>
     </DIV>
</xsl:template>

<xsl:template match="CCC">
     <xsl:call-template name="printout"/>
</xsl:template>

<xsl:template name="printout">
     <xsl:if test="position()=1">
          <xsl:value-of select="name()"/>
     </xsl:if>
     <xsl:text>(</xsl:text>
     <xsl:value-of select="position()"/>
     <xsl:text>/</xsl:text>
     <xsl:value-of select="last()"/>
     <xsl:text>)</xsl:text>
</xsl:template>


</xsl:stylesheet>



XSLT stylesheet 2

XML Source
<source>

<AAA>
     <BBB>
          <CCC>Carl</CCC>
     </BBB>
     <BBB/>
     <BBB/>
</AAA>
<AAA>
     <BBB/>
     <BBB>
          <CCC>John</CCC>
          <CCC>Charles</CCC>
          <CCC>Robert</CCC>
          <CCC>Anthony</CCC>
     </BBB>
</AAA>

</source>

Output
<TABLE border="1">
  <TR>
     <TH>Position</TH>
     <TH>Last</TH>
     <TH>Name</TH>
  </TR>
  <TR>
     <TD>1</TD>
     <TD>4</TD>
     <TD>John</TD>
  </TR>
  <TR>
     <TD>2</TD>
     <TD>4</TD>
     <TD>Charles</TD>
  </TR>
  <TR>
     <TD>3</TD>
     <TD>4</TD>
     <TD>Robert</TD>
  </TR>
  <TR>
     <TD>4</TD>
     <TD>4</TD>
     <TD>Anthony</TD>
  </TR>
</TABLE>
<TABLE border="1">
  <TR>
     <TH>Position</TH>
     <TH>Last</TH>
     <TH>Name</TH>
  </TR>
  <TR>
     <TD>1</TD>
     <TD>4</TD>
     <TD>Anthony</TD>
  </TR>
  <TR>
     <TD>2</TD>
     <TD>4</TD>
     <TD>Charles</TD>
  </TR>
  <TR>
     <TD>3</TD>
     <TD>4</TD>
     <TD>John</TD>
  </TR>
  <TR>
     <TD>4</TD>
     <TD>4</TD>
     <TD>Robert</TD>
  </TR>
</TABLE>

HTML view
Position Last Name
1 4 John
2 4 Charles
3 4 Robert
4 4 Anthony
Position Last Name
1 4 Anthony
2 4 Charles
3 4 John
4 4 Robert
XSLT stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE border="1">
          <TR>
               <TH>Position</TH>
               <TH>Last</TH>
               <TH>Name</TH>
          </TR>
          <xsl:for-each select="//AAA[last()]//CCC">
               <TR>
                    <TD>
                         <xsl:value-of select="position()"/>
                    </TD>
                    <TD>
                         <xsl:value-of select="last()"/>
                    </TD>
                    <TD>
                         <xsl:value-of select="text()"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
     <TABLE border="1">
          <TR>
               <TH>Position</TH>
               <TH>Last</TH>
               <TH>Name</TH>
          </TR>
          <xsl:for-each select="//AAA[last()]//CCC">
               <xsl:sort order="ascending" select="text()"/>
               <TR>
                    <TD>
                         <xsl:value-of select="position()"/>
                    </TD>
                    <TD>
                         <xsl:value-of select="last()"/>
                    </TD>
                    <TD>
                         <xsl:value-of select="text()"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>