我的转换存在问题并且希望有一些想法,我正在处理一个非常平坦的输入文档,其中所有重要节点都是彼此的兄弟。
看起来像这样:
<title1> Rule 51 </title1>
<p> text here </p>
<p> text here </p>
<note> Source </note>
<p> text here </p>
<title1> Rule 52 </title1>
<p> text here </p>
<p> text here </p>
<note> Source </note>
<p> text here </p>
我的目标是让这个输入看起来像这样:
<section>
<title1> Rule 51 </title1>
<p> text here </p>
<p> text here </p>
<note> Source </note>
<p> text here </p>
</section>
<section>
<title1> Rule 52 </title1>
<p> text here </p>
<p> text here </p>
<p> text here </p>
<p> text here </p>
<note> Source </note>
<p> text here </p>
</section>
正如你在上面看到的,我的主要目标是将每个title1和所有这些都跟随兄弟姐妹分组,直到它将另一个title1命中为section元素。任何想法??
提前致谢。
答案 0 :(得分:2)
尝试
<!-- Change the match pattern to match the parent of the input you showed. -->
<xsl:template match="blockquote">
<xsl:for-each-group group-starting-with="h:h4" select="*">
<section>
<xsl:copy-of select="current-group()" />
在XSLT 2.0中。
如果您只能使用XSLT 1.0,请查看Muenchian Grouping,如果需要帮助,请查看。