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(_dot_)Ramesh(_at_)spi-bpo(_dot_)com> 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(_at_)googlemail(_dot_)com]
Sent: Wednesday, March 03, 2010 11:02 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--