如何使用XSLT1.0转换XML中的单位
我正试图像这样转换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>
<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>
这不完全是我想要的,但这是个好主意,现在我知道怎么做了。谢谢