Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XSLT(数字转换)将XML转换为另一个XML_Xml_Xslt - Fatal编程技术网

使用XSLT(数字转换)将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

我正在尝试使用XSLT将XML转换为另一个XML。 这是我的输入XML:

...
<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,我认为您有足够的能力自己解决这个问题。下次,发布一个包含输入和预期输出的日志。