xsl-list
[Top] [All Lists]

Re: Trouble understanding how to use replace()

2006-01-06 09:07:25

some years since I worked with perl and my regex skills have rusted.

Your problem isn't with regexp it's with XML.


<xsl:value-of select="replace(req-text,"\"","'")" />

The first system to see that is an XML parser which knows nothing of
xslt or xpath syntax so it looks like

<foo bar="zzzzz"z""z""z"z" />

Which is not a well formed element as you can't have literal " in a
"-delimited attribute value.

you want
replace() with three arguments:
  the xpath  req-text
  the string "
  the string '

so first make XPath strings for the second 2, so you need the xpath
expression

replace(req-text,'"','''')

(this uses XPath2 syntax '' for a ' in a '-delimited xpath string.)

now you need to get that in an XML attribute so you need to XML-quote
the " and use " to delimit the expression

select="replace(req-text,'&quot;','''')"

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--