0

我有xml部分:

<tag>
    <tagIn>test</tagIn>
    <tagIn>test</tagIn>
    <tagIn>test</tagIn>
</tag>

我需要通过 xslt 转换得到:

  <tag>
    <tagIn1>test</tagIn1>
    <tagIn2>test</tagIn2>
    <tagIn3>test</tagIn3>
</tag>

我该怎么做?

4

1 回答 1

0

您可以尝试使用“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>
于 2013-06-11T12:45:14.537 回答