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 |