如何在 XSLT 中创建具有动态属性的元素? [英] How to create an element in XSLT with a dynamic attribute?
本文介绍了如何在 XSLT 中创建具有动态属性的元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一些看起来像这样的 XML:
I have some XML that looks something like this:
<ExtensionObject>
<Value xmlns="">
<Key>key01</Key>
<StringValue>somewords</StringValue>
</Value>
<Value xmlns="">
<Key>key01</Key>
<NumberValue>12345</NumberValue>
</Value>
...........hundreds more Values..............
</ExtensionObject>
我相当乐观地写了这样的 XSLT:
I rather optimistically wrote XSLT like this:
<xsl:template match="/ExtensionObject">
<VResult>
<xsl:for-each select="Value">
<xsl:variable name="fld">
<Value><xsl:value-of select="Key"/></Value>
</xsl:variable>
<Result field="$fld">
<Value>
<xsl:choose>
<xsl:when test="NumberValue">
<xsl:value-of select="NumberValue"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="StringValue"/>
</xsl:otherwise>
</xsl:choose>
</Value>
</Result>
</xsl:for-each>
</VResult>
</xsl:template>
并希望得到这个:
<VResult>
<Result field="key01"><Value>somewords</Value></Result>
<Result field="key02"><Value>12345</Value></Result>
...........hundreds more Values..............
</VResult>
相反,我得到了:
<VResult>
<Result field="$fld"><Value>somewords</Value></Result>
<Result field="$fld"><Value>12345</Value></Result>
...........hundreds more Values..............
</VResult>
有谁知道如何插入带有键值的字段名称?
Does anyone know how I can insert the field names with the key value?
推荐答案
<xsl:attribute name="field"><xsl:value-of select="Key"/></xsl:attribute>
这篇关于如何在 XSLT 中创建具有动态属性的元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文