使用XSLT(编号转换)将XML转换为另一个XML
问题描述:
我正尝试使用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”。任何帮助,将不胜感激
答
下面的模板:适用于您的输入例如
<xsl:template match="size">
<HAS>
<C SZ="{format-number(. div 1000, '0k')}"/>
</HAS>
</xsl:template>
,将返回:
<HAS>
<C SZ="21k"/>
</HAS>
一个例子是不足以表达的规则。给定的值是否总是大于1,000?如果不是,那么结果应该是什么? –
我已经有一个适用于所有元素的模板。我不能使用两个模板。有没有其他办法可以做到这一点?我的号码大于1,000 –
Rose
“*我无法使用两个模板。*”您可以根据需要使用尽可能多的模板。无论如何,这不是这里的重要部分。 'format-number($ input div 1000,'0k')'是。按照你的意愿使用它。 –