我試圖按省份排序,然後按城鎮排序。下面是一個示例XML:xsl:使用2個不同的節點對XML文件進行排序
<store>
<name>Duncan's</name>
<town>Waterloo</town>
<province>Ontario</province>
</store>
<store>
<name>Anne's</name>
<town>Waterloo</town>
<province>Ontario</province>
</store>
<store>
<name>Apple Variety</name>
<town>Woodstock</town>
<province>Ontario</province>
</store>
<store>
<name>Goose Market</name>
<town>Sackville</town>
<province>New Brunswick</province>
</store>
<store>
<name>Family Market</name>
<town>Sackville</town>
<province>New Brunswick</province>
</store>
我是能夠成功地將數據通過鎮使用此代碼進行排序:
<xsl:key name="towns" match="store" use="town"/>
<xsl:for-each select="//store[generate-id(.)=generate-id(key('towns', town)[1])]">
<xsl:sort select="town"/>
<xsl:for-each select="key('towns', town)">
<xsl:sort select="name"/>
<xsl:if test="position() = 1">
<h2>
<xsl:value-of select="town"/>
</h2>
</xsl:if>
<b> <xsl:value-of select="name"/></b> <br/>
<br/> <br/>
</xsl:for-each>
</xsl:for-each>
我將如何使用一鍵在前排序省,列出所有門店中新不倫瑞克省(按字母順序排列,然後按名稱排序)然後是安大略省?還是有沒有更好的方法來做到這一點,而不使用密鑰?謝謝!
你說你是*排序*,但你也是*分組*。目前還不清楚你是否也想按省份進行分組,或只是按照省份進行分組。你可以在沒有密鑰的情況下進行排序,但是你需要它來進行分組。 –
是的,我想組和排序。因此,首先按省份排序,然後按城鎮名稱(在這些省份組內)進行分組和排序,然後按商店名稱進行排序(在城鎮組內) –