You guys are really masters of XPath...Let me read this slowly and try
to understand...
Do you have any book or tutorial with this tricky constructions??
Thanks a lot!
lizet
Actually there was a small omission in the code and this would not allow
the last trailers to be copied.
Here's the corrected code (the key definitions are omitted as they are the
same:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kStart"
match="text()[preceding-sibling::*[1][self::br]]"
use="contains(., '.')
and
number(substring-before(., '.'))
=
number(substring-before(., '.'))"/>
<xsl:key name="kTrail"
match="text()[preceding-sibling::*[1][self::br]]"
use="generate-id(
preceding-sibling::text()
[
contains(., '.')
and
number(substring-before(., '.'))
=
number(substring-before(., '.'))
]
[1]
)"/>
<xsl:template match="/">
<xsl:for-each select="key('kStart', 'true')">
<Claim>
<xsl:copy-of select="normalize-space()"/>
<xsl:variable name="vLastNumbered" select="position() = last()"/>
<xsl:for-each select="key('kTrail', generate-id())">
<xsl:if test="$vLastNumbered or not(position() = last())">
<xsl:copy-of
select="concat(substring(.,1,1),
normalize-space(substring(.,2))
)"/>
</xsl:if>
</xsl:for-each>
</Claim>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
I believe that two very good books on XSLT are the following:
"Beginning XSLT" by Jeni Tennison
"XSLT Programmer's Reference" by Michael Kay.
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list