如果你正在尋找 '基團' 的元素到「項的使用一個元件作爲第一元件一種方法是使用xsl:鍵按照第一個前面的對元素進行分組一個元素
<xsl:key name="items" match="root/*" use="generate-id(preceding-sibling::a[1])" />
然後,你可以簡單地匹配一個元素,並將所有元素的關鍵
<xsl:copy-of select="key('items', generate-id())" />
擡頭以下是完整的XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:key name="items" match="root/*" use="generate-id(preceding-sibling::a[1])" />
<xsl:template match="/root">
<root>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="a" />
</root>
</xsl:template>
<xsl:template match="a">
<item>
<xsl:copy-of select="." />
<xsl:copy-of select="key('items', generate-id())" />
</item>
</xsl:template>
</xsl:stylesheet>
當應用於您的示例XML時,將輸出以下內容:
<root>
<item>
<a>a1</a>
<b>b1</b>
<c>c1</c>
<a>a2</a>
</item>
<item>
<a>a2</a>
<b>b2</b>
<c>c2</c>
</item>
</root>
你好,歡迎來到StackOverflow!儘管包括你所做的輸入和輸出樣本總是很好的,但如果你試圖解釋變換的規則,也會有很大幫助,否則民衆可能不得不做出假設。如果可能的話,顯示您當前擁有的XSLT也有幫助。謝謝! –
歡迎來到Stack Overflow!請注意,標籤不是關鍵字。也就是說,將可能適用於您的問題的每一個可能的單詞作爲標籤粘貼,對於試圖找到您的問題的其他人不會有幫助。 – Charles
感謝您的建議,我將遵循下一篇文章,Cheers,RJ的規則。 –