使用XSLT(数字转换)将XML转换为另一个XML
我正在尝试使用XSLT将XML转换为另一个XML。 这是我的输入XML:使用XSLT(数字转换)将XML转换为另一个XML,xml,xslt,Xml,Xslt,我正在尝试使用XSLT将XML转换为另一个XML。 这是我的输入XML: ... <size>21467</size> .... 。。。 21467 .... 我想将此输入XML转换为输出XML,如下所示: ... <HAS> <C SZ="21k"/> </HAS> ... 。。。 ... 我的XSLT代码: ... <HAS> <C> <xsl:attribute name="SZ" selec
...
<size>21467</size>
....
。。。
21467
....
我想将此输入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>
以下模板:
<xsl:template match="size">
<HAS>
<C SZ="{format-number(. div 1000, '0k')}"/>
</HAS>
</xsl:template>
应用于输入示例,将返回:
<HAS>
<C SZ="21k"/>
</HAS>
一个例子不足以表达一条规则。给定值是否始终大于1000?如果没有,结果应该是什么?我已经有了一个适用于所有元素的模板。我不能使用两个模板。我还有别的办法吗?我的数字大于1000“我不能使用两个模板”。您可以根据需要使用任意多个模板。无论如何,这不是这里的关键部分<代码>格式编号($input div 1000,'0k')为。请随意使用。请检查我问题的编辑部分。我已经添加了我的原始XSLTI,我认为您有足够的能力自己解决这个问题。下次,发布一篇包含输入和预期输出的文章。一个例子不足以表达一条规则。给定值是否始终大于1000?如果没有,结果应该是什么?我已经有了一个适用于所有元素的模板。我不能使用两个模板。我还有别的办法吗?我的数字大于1000“我不能使用两个模板”。您可以根据需要使用任意多个模板。无论如何,这不是这里的关键部分<代码>格式编号($input div 1000,'0k')为。请随意使用。请检查我问题的编辑部分。我已经添加了我的原始XSLTI,我认为您有足够的能力自己解决这个问题。下次,发布一个包含输入和预期输出的日志。