| Subject: [xsl] For-each-group group-starting-with drops text between  inline elements From: "Terry Ofner tdofner@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 3 Sep 2020 15:20:12 -0000 | 
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
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: [xsl] attribute value templates, Liam R. E. Quin liam | Thread | Re: [xsl] For-each-group group-star, Martin Honnen martin | 
| Re: [xsl] attribute value templates, Graydon graydon@xxxx | Date | Re: [xsl] For-each-group group-star, Martin Honnen martin | 
| Month |