【发布时间】:2011-01-16 22:35:24
【问题描述】:
我有一个带有列表结构的传入 XML 文件:
<list>
<listItem>
<name>elementOne</name>
<value>elementOneValue</name>
</listItem>
<listItem>
<name>elementTwo</name>
<value>elementTwoValue</name>
</listItem>
</list>
我正在尝试转换为这种结构:
<elementOne>elementOneValue</elementOne>
<elementTwo>elementTwoValue</elementTwo>
这是用 XSL 实现的简单逻辑,但我遇到了麻烦。
<xsl:for-each select="/list/listItem">
<xsl:element name="<xsl:value-of select="name"/>">
<xsl:value-of select="value"/>
</xsl:element>
</xsl:for-each>
不起作用,因为我假设连续的双引号破坏了<xsl:element> 标签
<xsl:for-each select="/list/listItem">
<<xsl:value-of select="name"/>>
<xsl:value-of select="value"/>
</<xsl:value-of select="name"/>>
</xsl:for-each>
不起作用,因为我不能使用 << 或 >> 和
<xsl:for-each select="/list/listItem">
<<xsl:value-of select="name"/>>
<xsl:value-of select="value"/>
</<xsl:value-of select="name"/>>
</xsl:for-each>
不起作用,因为我的代码中以 > 和 < 或 > 结尾。我希望这是一个非常简单的解决方案,但我在互联网上找不到任何记录。我忽略的简单修复是什么?
【问题讨论】:
-
好问题,+1。使用
<xsl:element>查看我的答案以获得完整而简短的解决方案。 :)
标签: xml templates xslt value-of