3

我的转换有问题,希望有一些想法,我正在处理一个非常扁平的输入文档,其中所有重要节点都是彼此的兄弟节点。

它看起来像这样:

<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 元素中。有任何想法吗??

提前致谢。

4

1 回答 1

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,如果您需要帮助,请大声疾呼。

于 2012-09-14T15:13:28.013 回答