I have a document with the following structure:
<div>
<p class="passage">
<span class="itemNum">(1)</span>First <b>sentence</b> of the
passage. <span class="itemNum">(2)</span> Second sentence of the passage. <span
class="itemNum">(3)</span> Third sentence of the passage.
</p>
</div>
I need to chunk this into separte items:
<div class="passage_set">
<p class="item" itemNum="(1)"><b>(1)</b> First <b>sentence</b> of the
passage.</p>
<p class="item" itemNum="(2)"><b>(2)</b> Second sentence of the
passage.</p>
<p class="item" itemNum="(3)"><b>(3)</b> Third sentence of the
passage.</p>
</div>
If there were no nodes in the text between spans, I could use tokenize,
which I do on such occasions.
With sets such as the one above, I have been trying to use for-each-group.
But I am unable to capture the text between the span elements.
Here is the relevant section of my current stylesheet (3.0 Saxon-PE
9.8.0.12):
<xsl:variable name="passage_raw">
<div class="passage_set">
<xsl:for-each-group select="div/p[@class='passage']/*"
group-starting-with="span">
<xsl:text> </xsl:text>
<p class="item">
<xsl:attribute name="itemNum">
<xsl:value-of select="current-group()[1]"/>
</xsl:attribute>
<xsl:copy-of select="current-group()"/>
</p>
</xsl:for-each-group>
</div>
</xsl:variable>
Here is the output:
<div class="passage_set">
<p class="item" itemNum="(1)"><span
class="itemNum">(1)</span><b>sentence</b></p>
<p class="item" itemNum="(2)"><span class="itemNum">(2)</span></p>
<p class="item" itemNum="(3)"><span class="itemNum">(3)</span></p>
</div>
I feel like I am close.
Is there any way to capture the text following the span using grouping or
any other method available in 3.0?
Any help would be much appreciated.
Terry
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--