我有以下XML:XSLT排序多個子節點上,每個家長
<?xml version="1.0" encoding="ISO-8859-1"?>
<entries>
<entry>
<title>Entry 1</title>
<prices>
<price>10</price>
<price>50</price>
</prices>
</entry>
<entry>
<title>Entry 2</title>
<prices>
<price>200</price>
<price>300</price>
</prices>
</entry>
<entry>
<title>Entry 3</title>
<prices>
<price>70</price>
<price>500</price>
</prices>
</entry>
</entries>
每一個元素都有一個以上的價碼,我要選擇MAX的價格,每個元素,並使用它與其他元素進行比較。
我的XSLT是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>Highest Price</th>
</tr>
<xsl:for-each select="entries/entry">
<xsl:sort select="prices/price" order="descending" data-type="number"/>
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="prices/price"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
它不工作。它產生:
Title Highest Price
Entry 2 200
Entry 3 70
Entry 1 10
雖然它應該產生:
Title Highest Price
Entry 3 500
Entry 2 300
Entry 1 50
請告訴我。我不得不使用XSLT1,所以我真的不能做:
<xsl:sort select="max(prices/price)" order="descending" data-type="number"/>
...
如何在輸出中使用「30」,但它甚至不在源XML中。請編輯您的源XML,以便它符合您的預期輸出。最好的問候,彼得 – Peter
@彼得,對不起,你是對的,我編輯它。謝謝。 –