我有以下xml,我只想将特殊字符“ +”排除在外。
<LegalMonetaryTotal>
<LineExtensionAmount currencyID="EUR">+1848.20</LineExtensionAmount>
<TaxExclusiveAmount currencyID="EUR">+1848.20</TaxExclusiveAmount>
<TaxInclusiveAmount currencyID="EUR">+2236.32</TaxInclusiveAmount>
<PayableAmount currencyID="EUR">+2236.32</PayableAmount>
我已经尝试过一些代码,例如substring-length等。或在代码之前添加#,但是我没有得到想要得到的结果。
<xsl:template match="/">
<xsl:for-each select="/x:Invoice/cac:LegalMonetaryTotal">
<xsl:if test="cbc:TaxExclusiveAmount"><xsl:value-of select="format-number(cbc:TaxExclusiveAmount,'##0.00')"/></xsl:if>
</xsl:for-each>
</xsl:template>
这将显示结果+1848,20
我只想得到1848,20。有人可以帮我吗?
答案 0 :(得分:0)
如果一开始总是会有一个“ +”,那么您可以这样做...
<xsl:value-of select="format-number(substring(cbc:TaxExclusiveAmount, 2),'##0.00')"/>
或者,如果它可能不存在,您可以这样做
<xsl:value-of select="format-number(translate(cbc:TaxExclusiveAmount, '+', ''),'##0.00')"/>
请注意,如果您现有的xsl:for-each
中没有其他代码,则可以简化为该代码
<xsl:for-each select="/LegalMonetaryTotal/TaxExclusiveAmount">
<xsl:value-of select="format-number(translate(., '+', ''),'##0.00')"/>
</xsl:for-each>