This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Convert mutiple escaped items from xml to HTML


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.&lt;br /&gt; &amp; you can find more
> information in &lt;a href="http://www.dot.com"&gt; dot.com
> &lt;/a&gt; &lt;br /&gt;</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.&lt;br /&gt; &amp;amp; you can find more
  information in &lt;a href="http://www.dot.com"&gt; dot.com
  &lt;/a&gt; &lt;br /&gt;</Comment>

then you should first run the value of Comment through a replacing
template to change all the '&' characters into the string '&amp;',
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]