我正在使用以下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>
我想要的是Name字段应该是tagName1,tagName2等。
我尝试使用以下
<field name=concat('tagName', position())>
但是那没有用。你能指出我正确的方向吗?
答案 0 :(得分:2)
我不确定源XML是什么样子,所以我在这里猜测。
假设这是来源:
countries = restClient.readEntity(
restClient.getWebTargetByPath("country")
.request(MediaType.APPLICATION_XML, RestClient.APPLICATION_JSON)
.get(), new GenericType<List<Country>>() {
});
然后使用此模板:
<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>
这接近您想要的吗?