为了账号安全,请及时绑定邮箱和手机立即绑定

XSLT concat 计数器与字段名称,使其动态

XSLT concat 计数器与字段名称,使其动态

侃侃尔雅 2022-07-20 16:25:10
我正在使用以下 xslt 生成 xml。我想要做的是迭代然后根据计数器动态设置字段的名称。我目前的 xslt 看起来像这样,但显然我错过了一些东西<xsl:for-each select="list1">        <field name="tagName">         <xsl:choose>            <xsl:when test="something != 'null'">                <value><xsl:value-of select="something" /></value>            </xsl:when>            <xsl:otherwise>                <value></value>            </xsl:otherwise>        </xsl:choose>    </field></xsl:for-each>我想要的是字段名称类似于 tagName1、tagName2 等。我尝试使用以下 <field name=concat('tagName', position())>然而这并没有奏效。你能为我指出正确的方向吗?
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

我不确定源 XML 是什么样的,所以我在这里猜测。


假设这是来源:


<list1>

  <tag>foo</tag>

  <tag>bar</tag>

  <tag>baz</tag>

</list1>

然后使用这个模板:


<xsl:template match="/list1">

  <xsl:for-each select="tag">   

    <field name="{concat('tag', position(), text())}"/>

  </xsl:for-each>

</xsl:template>

将返回:


<field name="tag1foo"/>

<field name="tag2bar"/>

<field name="tag3baz"/>

这接近你想要的吗?


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信