Главная -> XML&... -> XSLT в примерах 
>> Страница 20 << | Назад | Вперед | Содержание | Указатель

В преобразовании 1 сортировка проводится в текстовом режиме, а в преобразовании 2 — в числовом. Обратите внимание на важную деталь. В алфавите 2 идет после 1, поэтому в текстовом режиме 2 идет после 10.

Преобразование 1

Исходный XML
<source>

<car id="11"/>
<car id="6"/>
<car id="105"/>
<car id="28"/>
<car id="9"/>

</source>

Результат
<TABLE>
  <TR>
     <TH>Car-105</TH>
  </TR>
  <TR>
     <TH>Car-11</TH>
  </TR>
  <TR>
     <TH>Car-28</TH>
  </TR>
  <TR>
     <TH>Car-6</TH>
  </TR>
  <TR>
     <TH>Car-9</TH>
  </TR>
</TABLE>

Представление HTML
Car-105
Car-11
Car-28
Car-6
Car-9
Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE>
          <xsl:for-each select="//car">
               <xsl:sort data-type="text" select="@id"/>
               <TR>
                    <TH>
                         <xsl:text>Car-</xsl:text>
                         <xsl:value-of select="@id"/>
                    </TH>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>



Преобразование 2

Исходный XML
<source>

<car id="11"/>
<car id="6"/>
<car id="105"/>
<car id="28"/>
<car id="9"/>

</source>

Результат
<TABLE>
  <TR>
     <TH>Car-6</TH>
  </TR>
  <TR>
     <TH>Car-9</TH>
  </TR>
  <TR>
     <TH>Car-11</TH>
  </TR>
  <TR>
     <TH>Car-28</TH>
  </TR>
  <TR>
     <TH>Car-105</TH>
  </TR>
</TABLE>

Представление HTML
Car-6
Car-9
Car-11
Car-28
Car-105
Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE>
          <xsl:for-each select="//car">
               <xsl:sort data-type="number" select="@id"/>
               <TR>
                    <TH>
                         <xsl:text>Car-</xsl:text>
                         <xsl:value-of select="@id"/>
                    </TH>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>

Raleigh.ru Copyright © 2002