我想在XSLT 2.0中使用xsl:for-each對元素進行分組。XSLT 2.0使用<xsl:for-each-group>分組>
這是我輸入的說明:
<root>
<chapter>
<heading> heading text </heading>
<title> title </title>
<p> 1111 </p>
<p> 2222 </p>
<center> text </center>
<p> 3333 </p>
<title> another title </title>
<p> 4444 </p>
<center> text </center>
<p> 5555 </p>
</chapter>
<chapter>
<heading> heading text </heading>
<title> another title </title>
<p> 6666 </p>
<p> 7777 </p>
<title> another title </title>
<p> 8888 </p>
<p> 9999 </p>
</chapter>
<root>
我對每個<title>
元素匹配和分組每個下面的元素,直到下一個<title>
成元素<section>
試圖組此文件。以下是我希望我的輸出看起來像:不工作
<root>
<chapter>
<heading> Heading text </heading>
<section>
<title> title </title>
<p> 1111 </p>
<p> 2222 </p>
<center> text </center>
<p> 3333 </p>
</section>
<section>
<title> title </title>
<p> 4444 </p>
<center> text </center>
<p> 5555 </p>
</section>
<section>
<title> title </title>
<p> 6666 </p>
<p> 7777 </p>
<center> text </center>
<p> 8888 </p>
<p> 9999 </p>
</section>
<chapter>
<root>
我現在的模板:
<xsl:template match="chapter">
<chapter>
<xsl:for-each-group select="*" group-starting-with="title">
<section>
<xsl:copy-of select="current-group()" />
</section>
</xsl:for-each-group>
</chapter>
</xsl:template>
上面的樣式確實組不過我想要的部分但它也組,每組<heading>
元素由於某種原因進入它自己的<section>
。有什麼建議麼?
在此先感謝。
我意識到我需要價值的發佈問題後不久,不過這得到了它。忘記自我軸!謝謝伊恩。 – Laterade
或者確實是'',正如Sean所建議的那樣。我的大部分經驗是使用XSLT 1.0,並且我傾向於忘記2.0中的額外序列運算符。 –