Subject: Re: Convert mutiple escaped items from xml to HTML
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Wed, 22 Aug 2001 10:38:16 +0100
|
Hi Sun-fu,
> I have a xml with a series of escaped items shown in a text node and
> want to convert them into the html tag.
In effect, you are asking how to write an HTML parser in XSLT. As you
might expect, in a language that isn't particularly good at string
manipulation, it's not going to be easy. Someone with a computer
science background might be able to help with approaches to doing it.
In your situation, I would use disable-output-escaping - you would
save yourself a lot of work if you just did:
<xsl:value-of select="Comment" disable-output-escaping="yes" />
In the example that you gave:
> <Comment>This is an example.<br /> & you can find more
> information in <a href="http://www.dot.com"> dot.com
> </a> <br /></Comment>
the unescaped version of the content of Comment is unfortunately not
well-formed XHTML, nor even well-formed HTML. Unescaped, it is:
This is an example.<br /> & you can find more information in <a
href="http://www.dot.com"> dot.com </a> <br />
As you know, & characters have to be escaped in (X)HTML. So if they're
not double-escaped in your source XML, i.e. like:
<Comment>This is an example.<br /> &amp; you can find more
information in <a href="http://www.dot.com"> dot.com
</a> <br /></Comment>
then you should first run the value of Comment through a replacing
template to change all the '&' characters into the string '&',
before giving its value with output escaping disabled.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|