Интернет магазин китайских планшетных компьютеров



Компьютеры - XSL - Секреты мастерства

29 мая 2011


Оглавление:
1. XSL
2. Семейство XSL
3. Секреты мастерства



Рекурсивный цикл

XML:

 <?xml version="1.0"?>
 <?xml-stylesheet type="text/xsl" href="for.xsl"?>
 <root/>

for.xsl:

 <?xml version="1.0"?>
 
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="root">
        <HTML>
           <BODY>
                <xsl:call-template name="for">
                    <xsl:with-param name="i" select="1"/>
                    <xsl:with-param name="n" select="5"/>
                </xsl:call-template>
           </BODY>
        </HTML>
     </xsl:template>
 
     <xsl:template name="for">
        <xsl:param name="i"/>
        <xsl:param name="n"/>
        <xsl:value-of select="$i"/>
        <xsl:if test="$i &lt; $n">
           <xsl:text>, </xsl:text>
           <xsl:call-template name="for">
                <xsl:with-param name="i" select="$i+1"/>
                <xsl:with-param name="n" select="$n"/>
           </xsl:call-template>
        </xsl:if>
    </xsl:template>
 </xsl:stylesheet>

Результат:

1, 2, 3, 4, 5

Группировка и сортировка годов

XML:

 <?xml version="1.0"?>
 <?xml-stylesheet type="text/xsl" href="years.xsl"?>
 <root>
    <object year="2003"/>
    <object year="2001"/>
    <object year="2005"/>
    <object year="2005"/>
    <object year="2003"/>
    <object year="2006"/>
    <object year="2006"/>
    <object year="2006"/>
    <object year="2005"/>
    <object year="2001"/>
 </root>

years.xsl:

 <?xml version="1.0"?>
 
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
     <xsl:key name="years" match="/root/object" use="@year" />
 
     <xsl:template match="root" priority="-1">
        <HTML>
            <BODY>
                <xsl:for-each select="object">
                    <xsl:sort select="@year" order="descending"/>
 
                    <xsl:value-of select="@year" />
                    <xsl:if test="position!=last">
                        <xsl:text>, </xsl:text>
                    </xsl:if>
                </xsl:for-each>
            </BODY>
        </HTML>
    </xsl:template>
 </xsl:stylesheet>

Результат:

2006, 2005, 2003, 2001



Просмотров: 2448


<<< Textile (язык разметки)
XSL-FO >>>