我有一个 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>