如何在 XSLT 中创建具有动态属性的元素? [英] How to create an element in XSLT with a dynamic attribute?

查看:29
本文介绍了如何在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆