xsl-list
[Top] [All Lists]

Re: [xsl] segmenting a paragraph

2007-10-02 05:04:54


So far, I have been capturing the content of <p> in a string

don't do that, do this

<xsl:variable name="string" as="xs:string">
<xsl:value-of>
<xsl:apply-templates mode="zap-note"/>
</xsl:value-of>
</xsl:variable>
<xsl:variable name="p" select="."/>

then you want
<xsl:template match="note" mode="zap-node">
 <xsl:text>@@@@@</xsl:text>
 <xsl:value-of select="count(preceding-sibling::note)+1"/>
 <xsl:text>!!!!!</xsl:text>
</xsl:template>

so your string is

"Some text.  Some more text, with a comma. @@@@@1!!!!!"


and then using  two nested <xsl:analyze-string> blocks with regexes,
which work nicely and  do what I want.

so they should work on the above string (if @ or ! are used to look up
sentence punctuation in these regex, use different marker characters,
you can use unicode private use characters for example)

Then currently in you probably have something like

<xsl:matching-substring>
<seq><xsl:value-of select="."/></seq>
</xsl:matching-substring>

do instead




<xsl:matching-substring>
<seq>
<xsl:analyze-string select="." regex="@@@@@([0-9]*)!!!!!">
<xsl:matching-substring>
<xsl:copy-of select="$p/note[position()=regex-group(1)]"/>
</xsl:matching-substring>
...



so at the innermost level you can put the notes back.


David


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>