[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] struggling with


Subject: Re: [xsl] struggling with <xsl:analyze-string>
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 26 Jan 2005 15:21:54 GMT

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[@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[@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
________________________________________________________________________


Current Thread
Keywords