我正在尝试像这样转换XML
<product>
<package>3.9L</package>
</product>
<product>
<package>250g</package>
</product>
<product>
<package>2.8kg</package>
</product>
到这样的XML
<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>
我需要分离包的数字和文本部分,并根据文本部分(单位)决定将使用什么公式来计算权重。 有任何想法如何使用XSLT 1.0?
答案 0 :(得分:1)
您可以按如下方式使用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>