TEI 準拠でなければならない XML ファイルを使用しています。問題は、pb (改ページ) マイルストーンに関するものです。これは新しい問題ではありませんが、既存のソリューションは非常に複雑で重いため、私の場合はもっと簡単な方法があるのではないかと考えていました。
この XML ファイル部分を用意しましょう:
<body>
<pb n="2"/><p>Some random text is put here</p><p>Another
paragraph starts here, and in the
middle of it<pb n="3"/> a page break occurred.</p><pb n="4"/
<p>the next paragraph begins
on a new page</p>
<p>But in the next paragraph, after<pb n="5"/>another page break, something else
happend : a note<note
type=glossary">the note content</note> and so everything
failing <pb n="6"/> because of this note.
XML をこの HTML に変換したいと思います。
<table>
<tr><td><p>Some random text is put here</p><p>Another paragraph starts here, and in the
middle of it</p></td><td>2</td></tr>
<tr><td><p>a page break occurred.</p></td><td>3</td></tr>
<tr><td><p>the next par graph begins on a new page</p></td><td>4</td></tr>
<tr><td><p>But in the next paragraph, after</td><td>5</td></tr>
<tr><td><p>another page break, something else happend : a note
<note type=glossary">the note content</note> and so everything's failing</td><td>6</td></tr>
<tr><td>because of this note.</td></tr>
for-each-groupで非常に簡単に達成できるはずだと私には思えます。だから、基本的に、私はそのようなことを試みていました:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="/body">
<table>
<xsl:for-each-group select="descendant::*" group-starting-with="pb">
<tr><td><xsl:value-of select="current-group()"/>
</td><td><xsl:value-of select="current-group()[1]/@n"/>
</td></tr>
</xsl:for-each-group>
</table>
</xsl:template>
</xsl:stylesheet>
明らかに、それは機能しません...結果は次のとおりです。
<table><tr><td> Some random text is put here Another paragraph starts here, and in the
middle of it a page break occurred.</td><td>2</td></tr>
<tr><td/><td>3</td></tr><tr><td>
the next paragraph begins on
a new page</td><td>4</td></tr></table>
私は完全に間違った方向に進んでいますか?
助けてくれて本当にありがとうございます !クリストフ