|
Subject: AW: [xsl] struggling with <xsl:analyze-string> From: "Huditsch Roman" <Roman.Huditsch@xxxxxxxxxxxxx> Date: Wed, 26 Jan 2005 16:47:41 +0100 |
Hi David,
Thank you very much for your quick answer.
> part/section/par[@class='45_UeberschrPara' and
> contains(., 'In-Kraft-Treten')]/following-sibling::*
Unfortunately, the structure given may vary very much, meaning that there may
be
additional levels or <inline> elements to search within.
But I should be able to use
following::* then.
Don't know if that performs better. Does it?
> > 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.
Ah, that makes it a lot clearer. Thanks.
> 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.
That could indeed be the case. I just started to learn the new functions and
instructions dealing with regular expressions, so I am a total newbie here.
If I use the matches function in my select expression, how can I pass my found
date
to the named template?
Here is what I tried (input is the same as before):
<xsl:template match="/document">
<bekanntmachung ordnungszeichen="Paragraf">
<xsl:attribute name="gilt-ab">
<xsl:choose>
<xsl:when test="part/section/par[@class='45_UeberschrPara' and contains(.,
'In-Kraft-Treten')]">
<xsl:for-each select="part/section/par[@class='45_UeberschrPara' and
contains(text(), 'In-Kraft-Treten')]/following::*">
<!-- This regular expression is not working -->
<xsl:analyze-string select="." regex="\d{{1,2}}.\s\w+.\s\d{{4}}" >
<xsl:matching-substring>
<xsl:value-of select="."/>
<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>
</xsl:when>
<xsl:otherwise>
<xsl:text>01.01.1000</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</bekanntmachung>
</xsl:template>
In my output the attribute "gilt-ab" is empty. Since I have never written any
regular expresson before,
there is surely something wron with it. I strongly suspect the "." in it.
The regular expression should match strings like "1. Jdnner 2004", "12.
Dezember 2003" etc.
Thank you very much for your patience!
wbr,
Roman
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] XPath problem, David P. Nesbitt | Thread | AW: [xsl] struggling with <xsl:anal, Huditsch Roman |
| RE: [xsl] XML to XML conversion, Touchtel | Date | RE: [xsl] How to save output of XSL, Pieter Reint Siegers |
| Month |