格式化xslt中的价格值

时间:2014-04-14 14:53:21

标签: xml xslt

我的xml文件中有多个植物标签。基本代码是:

<plant>
    <common>snakeroot</common>
    <botanical>cimicifuga</botanical>
    <zone>5</zone>
    <light>shade</light>
    <price>$5.63</price>
    <availability>071114</availability>
</plant>

我想根据价格对此文件进行排序。如果我使用  <xsl:sort select="//price" data-type="number" order="descending" /> 但它没有排序,原因是我面前有一个美元符号。有人可以建议如何删除它或格式化它,以便我得到所需的结果。

由于

1 个答案:

答案 0 :(得分:1)

如果它始终是一个美元符号,那么你可以做

<xsl:sort select="substring-after(price, '$')" data-type="number"
          order="descending" />

您绝对不希望使用前导//,因为这会使其成为绝对路径,它会为每个plant选择完全相同的排序键值(即整个文档中的第一个price元素,而不是相对路径,用于从它所查看的特定price中选择plant时间。