xsl-list
[Top] [All Lists]

Re: struggling with <xsl:analyze-string>

2005-01-26 08:21:54

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



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