English | Français | Deutsch | >> Magyar << | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Oldal 53 << | Előző | Következő | Tartalom | Elem index

A position() függvény egy számmal tér vissza, amely egyenl? az adott k?rnyezet pozíciójával míg a last() függvény által visszaadott szám az adott kifejezés által meghatározott k?rnyezet méretével egyenl?. Az XSLT stíluslap 1 ezen függvények használatát mutatja be t?bbféle k?rnyezetben. Az XSLT stíluslap 2 a rendezett és rendezetlen xsl:for-each elemeket hasonlítja ?ssze.

XSLT stíluslap 1

XML forrás
<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>

Kimenet
<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 nézet
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 stíluslap
<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 stíluslap 2

XML forrás
<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>

Kimenet
<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 nézet
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 stíluslap
<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>