2012-01-14 2 views
2

Я хотел удалить знак фунта (£) в атрибуте formattedValue в XSLT. Не могли бы вы помочь в этом?Как удалить знак фунта из XML attritbute в XSLT?

<price value="£99.99" formattedValue="£99.99">55.55</price> 

Мне нужен выход, как 99,99

В принципе, нужно удалить знак фунта в XSLT

+0

возможный дубликат [Чтобы удалить десятичную точку во всех версиях XSLT] (http://stackoverflow.com/questions/8836850/to-remove-decimal-point-in-all-xslt-versions) –

ответ

2

Использование перевод:

<xsl:template match="@* | node()"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="price"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="price/@formattedValue"> 
    <xsl:attribute name="{name()}"> 
    <xsl:value-of select="translate(., '£', '')"/> 
    </xsl:attribute> 
</xsl:template> 
0

Вы можете использовать либо функцию translate():

translate(@formattedValue, '£', '') 

или, что я рекомендовал бы в данном конкретном случае, как короче и, возможно, более эффективным - использовать функцию substring():

substring(@formattedValue, 2) 
Смежные вопросы