我試圖爲我的輸入xml重複地包含父元素和子元素生成兩種類型的序列號。請參閱下面的輸入在XSLT中爲父子元素生成序列號
我有一個輸入XML,如:
<family>
<parent>P1<parent>
<child>C1<child>
</family>
<family>
<parent>P1<parent>
<child>C2<child>
</family>
<family>
<parent>P2<parent>
<child>C3<child>
</family>
<family>
<parent>P2<parent>
<child>C4<child>
</family>
<family>
<parent>P2<parent>
<child>C5<child>
</family>
我的期望輸出與內容的文本文件:基於父第一個序列號
00001 C1 00001
00001 C2 00002
00002 C3 00001
00002 C4 00002
00002 C5 00003
,並基於第兒童。 我想在我的XSL使用
<xsl:for-each-group select="family" group-by="child">
<xsl:value-of select="format-number(position(),'00000')"/>
<xsl:value-of select="child"/>
<xsl:value-of select="format-number(position(),'00000')"/>
</xsl:for-each-group>
對於上述XSL我越來越對雙方相同的序列號。是否有任何特定的功能或分組概念來實現,以便我可以實現所需的輸出? 請幫我理解這個邏輯。
謝謝,它工作完美! – Jarvis
蒂姆,我有一個小的疑問,我如何提取所有父節點的最後一個孩子?例如:C2,C5 – Jarvis
你可以在外部的for-each-group循環中做'current-group()[last()]'。如果你無法使用它,請隨時在SO上提出一個全新的問題。謝謝! –