RE: [xsl] Regex and apply xsl number

Subject: RE: [xsl] Regex and apply xsl number
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 2 Jan 2009 09:37:47 -0000
> Thanks for quick reply.
> 
> Any other option to get this result......... using XSLT...
> 
> Thanks
> Byomokesh


Using regular expressions is the approach I would use, but I can't write the
code for you without knowing much more about your requirements. For example
in your code [para1] etc is always preceded by a newline, but I have no idea
if that is a general property of your data or something peculiar to this
example.

Michael Kay
http://www.saxonica.com/

> 
> >Subject: RE: [xsl] Regex and apply xsl number
> >From: "Michael Kay" <mike@xxxxxxxxxxxx>
> >Date: Wed, 31 Dec 2008 09:28:46 -0000
> 
> 
> >^[ will match a bracket only if it appears right at the start of the 
> >text node, but in your case the bracket is preceded by whitespace.
> 
> Michael Kay
> http://www.saxonica.com/
> 
> >> -----Original Message-----
> >> From: Byomokesh Sahoo [mailto:sahoo.byomokesh@xxxxxxxxx]
> >> Sent: 31 December 2008 09:16
> >> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >> Subject: [xsl] Regex and apply xsl number
> >>
> >> Hi,
> >>
> >> I am getting problem in regex search in text node. Here my XML
> >>
> >> <file xmlns:QL="http://www.xmltricks.com";;>
> >> <QL:PARCITE/>
> >> 33 C.L.A.S. 505
> >> <QL:QLCITE/>
> >> [1994] O.L.A.A. No. 467
> >> [para1]     The grievance.
> >> [para2]     The grievance.
> >> [para3]     The grievance.
> >> <QL:QLCITE/>
> >> [1994] O.L.A.A. No. 467
> >> [para5]     The grievance. <!-- Need [para4] not [para5]
> >> sequence number -->
> >> [para6]     The grievance. <!-- Here should be [para5] -->
> >>
> >> <!-- continue like this where [para is found. --> </file>
> >>
> >> Desired Output
> >> =============
> >> <file xmlns:QL="http://www.xmltricks.com";;>
> >> <QL:PARCITE/>
> >> 33 C.L.A.S. 505
> >> <QL:QLCITE/>
> >> [1994] O.L.A.A. No. 467
> >> [para1]     The grievance.
> >> [para2]     The grievance.
> >> [para3]     The grievance.
> >> <QL:QLCITE/>
> >> [1994] O.L.A.A. No. 467
> >> [para4]     The grievance.
> >> [para5]     The grievance.
> >> </file>
> >>
> >> My XSL ==
> >>
> >> <xsl:variable name="myregex">((^[)(\w*)(\d*))</xsl:variable>
> >>
> >> <xsl:variable name="ss"><xsl:number/></xsl:variable>
> >>
> >> <xsl:template match="text()">
> >>   <xsl:analyze-string select="." regex="$myregex"> 
> >> <xsl:matching-substring> <xsl:value-of select="$ss"/> 
> >> </xsl:matching-substring>  <xsl:non-matching-substring>
> >>   <xsl:value-of select="."/>
> >>  </xsl:non-matching-substring>
> >> </xsl:analyze-string>
> >>
> >> ===
> >>
> >> I want to transform only sequence number (like 1, 2, 3) in [para] 
> >> text. I am trying but not able to match and replace to sequence 
> >> number.
> >>
> >> Thanks
> >> Byomokesh

Current Thread