I know that speed isn't so important if you are not getting the correct
answer but:
<xsl:for-each
select="part/section//*[preceding::par[(_at_)class='45_UeberschrPara' and
contains(., 'In-Kraft-Treten')]]">
maybe the optimiser will re-arrange that but on the face of it you have
managed to combine two of the most expensive operations (// and
preceding::) and recursively call one from the other.
the above searches the whole document below part/section to arbitarary
depth and then _for each_ found element searches back over the whole
document for a par with that property. If your par are siblings which
appears to be the case it's equivalent to
part/section/par[(_at_)class='45_UeberschrPara' and
contains(., 'In-Kraft-Treten')]/following-sibling::*
I suppose that the curly bracetts are giving my troubles...
The regex attribute is an attribute value template so {} will be exeuted
as an Xpath and the resulting string used in place of the AVT so the
regex there is \d4 you need {{ }} to make a {} group as in any AVT.
It may be just because you have simplifed too much but it would look as
if you don't need to use analyze-string here at all but just add
[matches(.,'\d{4}')]
to the select expression in your for-each.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--