Re: [xsl] XML overlap - processing a node-set defined by <start/> and <end/>

Subject: Re: [xsl] XML overlap - processing a node-set defined by <start/> and <end/>
From: Svante Schubert <svante.schubert@xxxxxxxxx>
Date: Sat, 17 Feb 2007 21:29:36 +0100
James Fuller wrote:
u might want to take a look at lmnl

Thanks James, but I have to stick on XML, lmnl seems to have it's own none-XML syntax.

Meanwhile I found a paper about CLIX [1], which had worked out the start/end scenarios in more detail beyond the chapter 'Range ordering with and without co-located endpoints'.
Until I found out more about the later mentioned validator build on Saxon, my XSLT related question is this:

Is the best (performant) way to work on the selection the following?

<xsl:variable name="precedingStarts" select="count(preceding::text:start)"/>
<xsl:if test="$precedingStarts != 0">
<xsl:variable name="followingEnds" select="count(following::text:end)"/>
<xsl:if test="$precedingStarts = $followingEnds">
<!-- do something -->

Is there any possibility to cache this?

I am thankful for any help,


gl, James Fuller

On 2/17/07, Svante Schubert <svante.schubert@xxxxxxxxx> wrote:
Imagine XML data, where continuous selection of data - randomly made by
the user - is being marked by using a <start/> and <end/> element.

For example:

        Some text C..
    Some text D..
        Some text F..

The desired nodes would be <ex:span> Some text C.. <ex:span> Some text D..

Is there an easy way to process this kind of selection with XSLT?

Best regards,

Current Thread