XSLT 序列号生成
XSLT Sequence Number Generation
我正在使用 XSLT 2.0 从 XMl 准备一个平面文件。我的输入 XML 是
<city>
<family>
<parent>A</parent>
<child>A1</child>
</family>
<family>
<parent>A</parent>
<child>A2</child>
</family>
<family>
<parent>B</parent>
<child>B1</child>
</family>
<family>
<parent>B</parent>
<child>B2</child>
</family>
<family>
<parent>B</parent>
<child>B3</child>
</family>
<family>
<parent>C</parent>
<child>C1</child>
</family>
</city>
Expected Output
-----------------
01 A
02 B
03 C
我必须对 parent 进行分组,每个 parent 在平面文件中都有一个条目,它应该有正确的序列号。我无法正确生成序列。
假设您使用 for-each-group
然后输出和格式化 position()
就足够了:
<xsl:template match="/">
<xsl:for-each-group select="city/family" group-by="parent">
<xsl:value-of select="concat(format-number(position(), '00'), ' ', current-grouping-key(), ' ')"/>
</xsl:for-each-group>
</xsl:template>
我正在使用 XSLT 2.0 从 XMl 准备一个平面文件。我的输入 XML 是
<city>
<family>
<parent>A</parent>
<child>A1</child>
</family>
<family>
<parent>A</parent>
<child>A2</child>
</family>
<family>
<parent>B</parent>
<child>B1</child>
</family>
<family>
<parent>B</parent>
<child>B2</child>
</family>
<family>
<parent>B</parent>
<child>B3</child>
</family>
<family>
<parent>C</parent>
<child>C1</child>
</family>
</city>
Expected Output
-----------------
01 A
02 B
03 C
我必须对 parent 进行分组,每个 parent 在平面文件中都有一个条目,它应该有正确的序列号。我无法正确生成序列。
假设您使用 for-each-group
然后输出和格式化 position()
就足够了:
<xsl:template match="/">
<xsl:for-each-group select="city/family" group-by="parent">
<xsl:value-of select="concat(format-number(position(), '00'), ' ', current-grouping-key(), ' ')"/>
</xsl:for-each-group>
</xsl:template>