我是xslt的新手。请帮我解决下面提到的方案。
这是输入:
<parent>
<c1>some text</c1>
<c2>some text</c2>
<c2>some text</c2>
<c2>some text</c2>
<c3>some text</c3>
<c2>some text</c2>
<c2>some text</c2>
<c2>some text</c2>
<c3>some text</c3>
<c2>some text</c2>
<c2>some text</c2> </parent>
我想要我的输出如下:(所有的c2,直到它遇到c3,应该嵌套到一个c2)。问题是,c3不是固定元素。它可以是除c2之外的任何元素。
<parent>
<c1>some text</c1>
<c2>some text
some text
some text</c2>
<c3>some text</c3>
<c2>some text
some text
some text</c2>
<c3>some text</c3>
<c2>some text
some text</c2>
</parent>
答案 0 :(得分:-1)
您可以使用:
XSLT 2.0
<xsl:template match="parent">
<xsl:for-each-group select="*" group-adjacent="name() = 'c2'">
<xsl:copy>
<xsl:apply-templates select="current-group()"/>
</xsl:copy>
</xsl:for-each-group>
</xsl:template>