Subject: Re: [xsl] Pattern Substring From: Senthilukvelaan <skumaravelan@xxxxxxxxxxxxxx> Date: Tue, 2 Mar 2010 22:37:19 -0800 |
Hi, My input : <OPTIONS >Text1 X055-0001 Text1 Textx2</OPTIONS> <OPTIONS >Text1 055-0002 Text1 Text3</OPTIONS> xslt <xsl:template match="OPTIONS"> <xsl:variable name="index" select="string-length(substring-before(.,'055'))"/> <xsl:element name="OPTION"> <xsl:attribute name="optionNumber"><xsl:value-of select="normalize-space(substring(.,$index,9))"/></xsl:attribute> <xsl:apply-templates/> </xsl:element> </xsl:template> My desired output <OPTION optionNumber=' X055-0001'>Text1 X055-0001 Text1</OPTION> <OPTION optionNumber='055-0001'>Text1 055-0001 Text1</OPTION> But My actual output using the code <OPTION optionNumber='055-0001'>Text1 X055-0001 Text1</OPTION> <OPTION optionNumber='055-0002'>Text1 055-0001 Text1</OPTION> I am trying to create a option Number attribute from the Options value. The <OPTIONS> value contains the optionnumber value prefix and suffix by some text value. I am not sure, How to do this? Please help. On Tue, Mar 2, 2010 at 10:17 PM, Ramesh, Marimuthu <M.Ramesh@xxxxxxxxxxx> wrote: > Hi, > > Your requirement is bit unclear. Your below code gives the output as > below: > > <OPTION optionNumber="X055-0001">Text1 X055-0001 Text1 Textx2</OPTION> > > <OPTION optionNumber="055-0002">Text1 055-0002 Text1 Text3</OPTION> > > But your desired output below does not have any OPTION element, and also > the text inside the elements differ. > > <OPTIONS optionNumber='X055-0001'>Text1 X055-0001 Text1</OPTIONS> > <OPTIONS optionNumber='055-0001'>Text1 055-0001 Text1</OPTIONS> > >> Using the template I am able to get the second node correctly . > > Do you mean the output by the above line. > > Make the requirement clear. > > Regards, > Rummy > > -----Original Message----- > From: Senthilukvelaan [mailto:skumaravelan@xxxxxxxxxxxxxx] > Sent: Wednesday, March 03, 2010 11:02 AM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Pattern Substring > > Hi , > I have xml like below and I want to do pattern match and get option > numbers which is always space delimited. Using the template I am able > to get the second node correctly . > But in the First element, am somehow missing the "X". > > Input: > > <OPTIONS >Text1 X055-0001 Text1 Textx2</OPTIONS> > <OPTIONS >Text1 055-0002 Text1 Text3</OPTIONS> > > my xslt > > <xsl:template match="OPTIONS"> > <xsl:variable name="index" > select="string-length(substring-before(.,'055'))"/> > <xsl:element name="OPTION"> > <xsl:attribute name="optionNumber"><xsl:value-of > select="normalize-space(substring(.,$index,9))"/></xsl:attribute> > <xsl:apply-templates/> > </xsl:element> > </xsl:template> > > desired output: > <OPTIONS optionNumber=' X055-0001'>Text1 X055-0001 Text1</OPTIONS> > <OPTIONS optionNumber='055-0001'>Text1 055-0001 Text1</OPTIONS>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Pattern Substring, Ramesh, Marimuthu | Thread | Re: [xsl] Pattern Substring, Wendell Piez |
RE: [xsl] Figure Move, Ramesh, Marimuthu | Date | [xsl] Math "functions" for XSLT 1.0, COUTHURES Alain |
Month |