|
Subject: AW: [xsl] struggling with <xsl:analyze-string> From: "Huditsch Roman" <Roman.Huditsch@xxxxxxxxxxxxx> Date: Wed, 26 Jan 2005 17:14:24 +0100 |
Ok, solved it.
<xsl:for-each select="part/section/par[@class='45_UeberschrPara' and
contains(text(), 'In-Kraft-Treten')]/following::text()">
<xsl:analyze-string select="." regex="\d{{1,2}}.+\d{{4}}">
<xsl:matching-substring>
<xsl:call-template name="get.date">
<xsl:with-param name="text" select="." as="xs:string"/>
</xsl:call-template>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:for-each>
This code snippet does what I expected.
Would be nice to know if matches() would get me the same result...
wbr,
Roman
_______________________________________
Roman Huditsch
IT and Electronic Publishing
LexisNexis ARD Orac
Marxergasse 25
1030 Vienna
Austria
ph: +43-1-534 52-1514
f: +43-1-534 52-140
e-mail roman.huditsch@xxxxxxxxxxxxx
www.lexisnexis.at
> -----Urspr|ngliche Nachricht-----
> Von: David Carlisle [mailto:davidc@xxxxxxxxx]
> Gesendet: Mittwoch, 26. Januar 2005 16:22
> An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Betreff: Re: [xsl] struggling with <xsl:analyze-string>
>
>
> 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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| AW: [xsl] struggling with <xsl:anal, Huditsch Roman | Thread | Re: AW: [xsl] struggling with <xsl:, David Carlisle |
| RE: [xsl] How to save output of XSL, Pieter Reint Siegers | Date | Re: AW: [xsl] struggling with <xsl:, David Carlisle |
| Month |