Senthilukvelaan,
The processor is giving you exactly what you have requested. In
effect, you have defined your optionNumber as the
whitespace-normalized value of the nine-character string starting
with the first appearance of '055' in your element content.
But it sounds like this isn't what you want, since some of your
option numbers don't start with '055', but have prefixes.
The solution depends on the definition of the option number,
including the prefix. How do you recognize it?
Given that specification, this will almost certainly be easier to
implement in XSLT 2.0 using a regular expression.
Cheers,
Wendell
At 01:37 AM 3/3/2010, you wrote:
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>
--~--
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
--~------------------------------------------------------------------
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>
--~--