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
如何使用XSLT1.0转换XML中的单位_Xml_Xslt 1.0 - Fatal编程技术网

如何使用XSLT1.0转换XML中的单位

如何使用XSLT1.0转换XML中的单位,xml,xslt-1.0,Xml,Xslt 1.0,我正试图像这样转换XML <product> <package>3.9L</package> </product> <product> <package>250g</package> </product> <product> <package>2.8kg</package> </product> <product>

我正试图像这样转换XML

<product>
    <package>3.9L</package>
</product>
<product>
    <package>250g</package>
</product>
<product>
    <package>2.8kg</package>
</product>
<product>
    <weight>3.9</weight>
    <unit>L</unit>
</product>
<product>
    <weight>0.25</weight>
    <unit>g</unit>
</product>
<product>
    <weight>2.8</weight>
    <unit>kg</unit>
</product>

3.9升
250克
2.8公斤
像这样使用XML

<product>
    <package>3.9L</package>
</product>
<product>
    <package>250g</package>
</product>
<product>
    <package>2.8kg</package>
</product>
<product>
    <weight>3.9</weight>
    <unit>L</unit>
</product>
<product>
    <weight>0.25</weight>
    <unit>g</unit>
</product>
<product>
    <weight>2.8</weight>
    <unit>kg</unit>
</product>

3.9
L
0.25
G
2.8
公斤
我需要分开包装的数字和文本部分,并根据文本部分(单位)决定将使用什么公式来计算重量。
您知道如何使用XSLT 1.0实现这一点吗?

您可以按如下方式使用
translate

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

<xsl:template match="package">
    <weight>
        <xsl:value-of select="translate(., translate(., '0123456789.', ''), '')"/>
    </weight>
    <unit>
        <xsl:value-of select="translate(., '0123456789.', '')"/>
    </unit>
</xsl:template>

这不完全是我想要的,但这是个好主意,现在我知道怎么做了。谢谢