在多个标记之间生成序列号



My Input xml的格式如下

<root>
    <entity>
        <entityrecord>
            <field>
                <id>Parent</id>
                <value>P-1</value>
            </field>
            <entity>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-1</value>
                    </field>
                </entityrecord>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-2</value>
                    </field>
                </entityrecord>
            </entity>
        </entityrecord>
        <entityrecord>
            <field>
                <id>Parent</id>
                <value>P-2</value>
            </field>
            <entity>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-1</value>
                    </field>
                </entityrecord>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-2</value>
                    </field>
                </entityrecord>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-3</value>
                    </field>
                </entityrecord>
            </entity>
        </entityrecord>
        <entityrecord>
            <field>
                <id>Parent</id>
                <value>P-3</value>
            </field>
            <entity>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-1</value>
                    </field>
                </entityrecord>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-2</value>
                    </field>
                </entityrecord>
                <entityrecord>
                    <field>
                        <id>Child</id>
                        <value>C-3</value>
                    </field>
                </entityrecord>
            </entity>
        </entityrecord>
    </entity>
</root>

我的输出格式应该是

1^P-1
2^C-1
3^C-2
4^P-2
5^C-1
6^C-2
7^C-3
8^P-3
9^C-1
10^C-2
11^C-3

我尝试了许多不同的方法来完成这项工作,但都没有成功。我无法生成序列号。在这种情况下,有人能帮我吗?

假设提供的输出中重复的6是错误的,请尝试:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="field">
    <xsl:number count="field" level="any"/>
    <xsl:text>^</xsl:text>
    <xsl:value-of select="value"/>
    <xsl:text>&#10;</xsl:text>
</xsl:template>
</xsl:stylesheet>

应用于您的示例输入,结果将是:

1^P-1
2^C-1
3^C-2
4^P-2
5^C-1
6^C-2
7^C-3
8^P-3
9^C-1
10^C-2
11^C-3

相关内容

  • 没有找到相关文章