2011-10-26 2 views
0

Я пытаюсь сортировать некоторые данные XML, я следил за учебниками W3s, но мой код не работает, что не так?сортировка десятичных знаков с помощью XSLT

<xsl:for-each select="garage/car[colour='red']"> 
    <xsl:apply-templates> 

<xsl:sort select="number(price)" order="descending" data-type="number" /> 
</xsl:apply-templates> 

    <tr>  
    <td><xsl:value-of select="make"/></td> 
    <td><xsl:value-of select="model"/></td> 
    <td><xsl:value-of select="price"/></td> 
    </tr> 


    </xsl:for-each> 

XML пример ~:

<garage> 
    <car> 
     <make>vw</make> 
     <model>golf</model> 
     <color>red</color> 
     <price>5.99</price> 
    </car> 
    <car> 
     <make>ford</make> 
     <model>focus</model> 
     <color>black</color> 
     <price>3.66</price> 
    </car> 
    <car> 
     <make>honda</make> 
     <model>civic</model> 
     <color>red</color> 
     <price>15.99</price> 
    </car> 
</garage> 
+0

Вы уверены, что когда-нибудь узнаете, что такое xml? –

+0

добавил xml сейчас .... – Lunar

+0

W3C предоставляет учебные пособия? – Saxoier

ответ

0

Итак, вы хотите, чтобы показать все красные машины в порядке убывания цены?

Это помогает, если вы согласны с вашим написанием цвета/цвета! Я англичанин и чувствую твою боль!

Также вы путаете шаблоны применяются обмен на каждого и (обе работы)

применяются-шаблоны метод:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html" version="1.0" indent="yes" /> 

    <xsl:template match="/"> 
     <xsl:apply-templates select="garage/car[color='red']"> 
     <xsl:sort select="number(price)" order="descending" data-type="number" /> 
     </xsl:apply-templates> 
    </xsl:template> 

    <xsl:template match="car[color='red']"> 
     <tr> 
     <td> 
      <xsl:value-of select="make" /> 
     </td> 
     <td> 
      <xsl:value-of select="model" /> 
     </td> 
     <td> 
      <xsl:value-of select="price" /> 
     </td> 
     </tr> 
    </xsl:template>  
</xsl:stylesheet> 

для-каждого метода:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html" version="1.0" indent="yes" /> 

    <xsl:template match="/"> 
     <xsl:for-each select="garage/car[color='red']"> 
     <xsl:sort select="number(price)" order="descending" data-type="number" /> 
     <tr> 
      <td> 
       <xsl:value-of select="make" /> 
      </td>  
      <td> 
       <xsl:value-of select="model" /> 
      </td> 
      <td> 
       <xsl:value-of select="price" /> 
      </td> 
     </tr> 
     </xsl:for-each> 
    </xsl:template> 

</xsl:stylesheet> 
Смежные вопросы