这个问题是从使用XSLT的答案演变而来的:更改某些属性值以解决我的情况,但发现它不起作用。
这是我的xml:
<root>
<Element1 id="VEH1">
<Element2 />
</Element1>
<Element1 id="VEH2">
<Element2 />
</Element1>
</root>
这是我的 xsl 转换:
<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="@id">
<xsl:attribute name="id">
<xsl:choose>
<xsl:when test=". = VEH1">
<xsl:text>VEH01</xsl:text>
</xsl:when>
<xsl:when test=". = VEH2">
<xsl:text>VEH02</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
我希望输出看起来像:
<?xml version="1.0" encoding="UTF-8"?><root>
<Element1 id="VEH01">
<Element2/>
</Element1>
<Element1 id="VEH02">
<Element2/>
</Element1>
</root>
但属性值保持不变,至少在http://xslttest.appspot.com/我不知道为什么。谢谢