入力 XML:
<entry>
<text>
<p>xyz</p>
<p>xyz</p>
<p>xyz</p>
<p>xyz</p>
<author>abc</author>
<p>xyz</p>
<p>xyz</p>
<p>xyz</p>
<author>abc</author>
</text>
</entry>
XSLT 1.0 を使用しています。
<p>
次の要素まですべての要素を選択<author>
し、それらを (次の要素と一緒に<author>
) 新しい要素の下にグループ化したいと思います<div>
。したがって、期待される出力は次のようになります。
<entry>
<text>
<div>
<p>xyz</p>
<p>xyz</p>
<p>xyz</p>
<p>xyz</p>
<author>abc</author>
</div>
<div>
<p>xyz</p>
<p>xyz</p>
<p>xyz</p>
<author>abc</author>
</div>
</text>
</entry>
私はこの解決策を試しました:
<xsl:template match="entry">
<entry>
<text>
<div>
<xsl:apply-templates select="child::node()[not(preceding-sibling::author)]"/>
</div>
</text>
</entry>
</xsl:template>
<p>
+の最初のグループではうまくいきますが、次のグループではうまくいき<author>
ません。
助けていただければ幸いです。