我在XML中有这个:
<price>
<now>€ 249,95</now>
</price>
逗号前的金额在下面完成,我只想去掉欧元符号。
这是我们的(XSLT 1.0):
<xsl:template name="amount">
<xsl:param name="string"/>
<xsl:param name="separator" select="','"/>
<xsl:choose>
<xsl:when test="contains($string,$separator)">
<xsl:value-of select="substring-before($string,$separator)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
你为什么不干脆:
<xsl:value-of select="translate(now, ',€ ', '.')" />
这将把十进制逗号转换为一个点,并删除欧元符号和任何空格,而不需要测试它们是否存在。
如果只需要整数部分,则:
<xsl:value-of select="floor(translate(now, ',€ ', '.'))" />
将在示例中返回249
。