2016-09-21 115 views
0

我正嘗試使用XSLT將XML轉換爲另一個XML。 這是我的輸入XML:使用XSLT(編號轉換)將XML轉換爲另一個XML

... 
<size>21467</size> 
.... 

我想這個輸入XML轉換成XML輸出看起來像這樣:

... 
<HAS> 
<C SZ="21k"/> 
</HAS> 
... 

我的XSLT代碼:

... 
<HAS> 
<C> 
<xsl:attribute name="SZ" select="xs:string(xs:anyURI(fn:string($var1_resultof_first/size)))" /> 
</C> 
</HAS> 
.. 

我米不知道如何將大小「21467」轉換爲「21k」。任何幫助,將不勝感激

+0

一個例子是不足以表達的規則。給定的值是否總是大於1,000?如果不是,那麼結果應該是什麼? –

+0

我已經有一個適用於所有元素的模板。我不能使用兩個模板。有沒有其他辦法可以做到這一點?我的號碼大於1,000 – Rose

+0

「*我無法使用兩個模板。*」您可以根據需要使用盡可能多的模板。無論如何,這不是這裏的重要部分。 'format-number($ input div 1000,'0k')'是。按照你的意願使用它。 –

回答

2

下面的模板:適用於您的輸入例如

<xsl:template match="size"> 
    <HAS> 
     <C SZ="{format-number(. div 1000, '0k')}"/> 
    </HAS> 
</xsl:template> 

,將返回:

<HAS> 
    <C SZ="21k"/> 
</HAS>