多个标签之间的序列号生成

时间:2016-04-14 06:16:14

标签: xslt-1.0 xslt-2.0

我的输入xml采用以下格式

<framework src="com.facebook.android:facebook-android-sdk:4.8.+"/>

我的输出格式应为

<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 个答案:

答案 0 :(得分:1)

假设在提供的输出中重复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