我正在使用以下 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"/>
這接近你想要的嗎?
添加回答
舉報
0/150
提交
取消