Xml 将迭代编号添加到标记名
我有xml部分:Xml 将迭代编号添加到标记名,xml,xslt,Xml,Xslt,我有xml部分: <tag> <tagIn>test</tagIn> <tagIn>test</tagIn> <tagIn>test</tagIn> </tag> 测试 测试 测试 我需要通过xslt转换获得: <tag> <tagIn1>test</tagIn1> <tagIn2>test</ta
<tag>
<tagIn>test</tagIn>
<tagIn>test</tagIn>
<tagIn>test</tagIn>
</tag>
测试
测试
测试
我需要通过xslt转换获得:
<tag>
<tagIn1>test</tagIn1>
<tagIn2>test</tagIn2>
<tagIn3>test</tagIn3>
</tag>
测试
测试
测试
我该怎么做呢?您可以尝试一种“身份转换”,并为“tagIn”指定一条特殊规则。大概是这样的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="tagIn">
<xsl:element name="{concat('tagIn', count(preceding-sibling::tagIn)+1)}" >
<xsl:apply-templates />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
将生成以下输出:
<tag>
<tagIn1>test</tagIn1>
<tagIn2>test</tagIn2>
<tagIn3>test</tagIn3>
</tag>
测试
测试
测试