我有一个 XML: ?xml version="1.0" encoding="UTF-8"?COLLECTIONAddedpartweight5kg/weight/partpartweight/weight/partpartweight2kg/weight/part/AddedUpdatepartweight/weight/partpartweight3kg/weight/partpartweight2kg/weight/part/Update/COLLE
<?xml version="1.0" encoding="UTF-8"?> <COLLECTION> <Added> <part> <weight>5kg</weight> </part> <part> <weight></weight> </part> <part> <weight>2kg</weight> </part> </Added> <Update> <part> <weight></weight> </part> <part> <weight>3kg</weight> </part> <part> <weight>2kg</weight> </part> </Update> </COLLECTION>
我想在它上面应用XSL,以便< weight>标签需要转换为权重并考虑唯一的数字.这样我想添加一些额外的标签,这在输入XML中不存在.< unitWeights>如果< weight>的值只是预定,然后它会显示KG休息它将是空白的.
预期产量:
<?xml version="1.0" encoding="UTF-8"?> <COLLECTION> <Added> <part> <Weight>5</Weight> <unitWeights>KG</unitWeights> </part> <part> <Weight></Weight> <unitWeights></unitWeights> </part> <part> <Weight>2</Weight> <unitWeights>KG</unitWeights> </part> </Added> <Update> <part> <Weight></Weight> <unitWeights></unitWeights> </part> <part> <Weight>3</Weight> <unitWeights>KG</unitWeights> </part> <part> <Weight>2</Weight> <unitWeights>KG</unitWeights> </part> </Update> </COLLECTION>
为此我申请了:
<xsl:template match="Weight">
<weight>
<xsl:value-of select="translate(.,translate(., '0123456789', ''), '')"/>
</weight>
</xsl:template>
<xsl:template match="WeightUnits">
<unitWeights>KG</unitWeights>
</xsl:template>
请帮我解决我错的地方.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="weight">
<Weight>
<xsl:copy-of select="substring-before(.,'kg')"/>
</Weight>
<unitWeights>
<xsl:copy-of select="substring(., string-length(.) - 1)"/>
</unitWeights>
</xsl:template>
<xsl:template match="unitWeights"/>
</xsl:stylesheet>
