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>
--~--