簡體   English   中英

xsl排序不適用於xsl:apply-templates

[英]xsl sort doesn't work on xsl:apply-templates

我正在嘗試通過使用以下指令減小直徑來對有關行星數據的xml文件進行排序:

<xsl:sort select ="diametre" order="descending" data-type="number" />

但是xsl:sort不起作用:

 <?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="//planete"> <html lang="fr"> <head> <title>Les planètes</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="systeme_solaire/planete" > <xsl:if test="nom!='Terre'"> <xsl:sort select ="diametre" order="descending" data-type="number" /> <ul> <p><b><xsl:value-of select="nom"/> : </b></p> <li>Distance au soleil: <xsl:value-of select="distance"/><xsl:value-of select="distance/@unit"/></li> <li>Masse: <xsl:value-of select="masse"/><xsl:value-of select="masse/@unit"/></li> <li>Diamètre: <xsl:value-of select="diametre"/><xsl:value-of select="diametre/@unit"/></li> <xsl:if test="satellite>0"><li>Nombre de satellites: <xsl:value-of select="satellite"/></li></xsl:if> </ul> </xsl:if> </xsl:template> </xsl:stylesheet> 

XML檔案:

 <?xml version="1.0" encoding="ISO-8859-1" ?> <systeme_solaire> <etoile> <nom>Soleil</nom> <type_spectral>G2</type_spectral> <age unit="milliard d'annees">5</age> </etoile> <planete type="tellurique"> <nom>Mercure</nom> <distance unit="UA">0.4</distance> <masse unit="masse terrestre">0.06</masse> <diametre unit="diamètre terrestre">0.4</diametre> </planete> </systeme_solaire> 

您能幫我找到為什么xsl:sort不按直徑排序嗎?

我猜你想做這樣的事情:

XSLT 1.0

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

<xsl:template match="/systeme_solaire">
    <html lang="fr">
        <head>
            <title>Les planètes</title>
        </head>
        <body>
            <xsl:apply-templates select="planete[nom!='Terre']">
                <xsl:sort select ="diametre" order="descending" data-type="number" />
            </xsl:apply-templates>
        </body>
    </html>
</xsl:template> 

<xsl:template match="planete" >
    <ul>
        <p><b><xsl:value-of select="nom"/> : </b></p>
        <li>Distance au soleil: <xsl:value-of select="distance"/><xsl:value-of select="distance/@unit"/></li>
        <li>Masse: <xsl:value-of select="masse"/> <xsl:value-of select="masse/@unit"/></li>
        <li>Diamètre: <xsl:value-of select="diametre"/> <xsl:value-of select="diametre/@unit"/></li>
        <xsl:if test="satellite>0"><li>Nombre de satellites: <xsl:value-of select="satellite"/></li></xsl:if>
    </ul>
</xsl:template>

</xsl:stylesheet>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM