【发布时间】:2020-06-01 22:26:54
【问题描述】:
我正在努力根据键值动态更改我的 xml 的节点,下面是我的原始 xml,接下来是我想要在 xsl 转换后成为的 xml。
原始xml:
<Refd>
<randr>
<KeyPair>
<Key>CM_001</Key>
<Value>sometext</Value>
</KeyPair>
<KeyPair>
<Key>CM_002</Key>
<Value>sometext/Value>
</KeyPair>
<KeyPair>
<Key>CM_003</Key>
<Value>sometext/Value>
</KeyPair>
</randr>
</Refd>
尝试如下:
<Refd>
<randr>
<KeyPair_001>
<Key>CM_001</Key>
<Value>sometext</Value>
</KeyPair_001>
<KeyPair_002>
<Key>CM_002</Key>
<Value>sometext/Value>
</KeyPair_002>
<KeyPair_003>
<Key>CM_003</Key>
<Value>sometext/Value>
</KeyPair_003>
</randr>
</Refd>
试图通过以下方式让 xslt 工作,但它只能让我获得 1 个标签,而其他标签保持不变,我可以让它为多个标签工作。提前谢谢你
<xsl:template match="Refd/randr/KeyPair">
<xsl:variable name="ename">
<xsl:text>Key</xsl:text>
<xsl:if test="Key ='CM_001'">
<xsl:text>001</xsl:text>
</xsl:if>
</xsl:variable>
<xsl:element name="{$ename}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template>
【问题讨论】: