Re: [xsl] regex help, please

Subject: Re: [xsl] regex help, please
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 21 Jan 2010 18:25:53 -0500
Brian,

You're looking for '\|'. The backslash is used to escape metacharacters.

Mulberry has posted a QuickRef for XPath 2.0 regex at

http://www.mulberrytech.com/quickref/index.html

(Thanks to Sam Wilmott.)

An easier way to do what you want could be:

<xsl:for-each select="tokenize(doctext,'\|')">
  <item>
    <xsl:value-of select="."/>
  </item>
</xsl:for-each>

Cheers,
Wendell


At 06:07 PM 1/21/2010, you wrote:
I've got a pipe delimited list of data which I'd like to turn into an Xml doc for further processing.

So, I use code something like

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:fo="http://www.w3.org/1999/XSL/Format"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:fn="http://www.w3.org/2005/xpath-functions";>
<xsl:template match="/">
<xsl:analyze-string regex="doctext" select='|'>
<xsl:matching-substring></xsl:matching-substring>
<xsl:non-matching-substring><item><xsl:value-of select="."/></item></xsl:non-matching-substring>
</xsl:analyze-string>
<xsl:copy>
<xsl:value-of select="$doctext/node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>


Which doesn't work - it doesn't recognize the pipe as a regex.
What should that regex be?
I've also tried /| and [|].



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
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
======================================================================

Current Thread