Subject: Re: [xsl] De-escaping markup From: "M. David Peterson" <m.david.x2x2x@xxxxxxxxx> Date: Thu, 3 Feb 2005 04:25:06 -0700 |
Hi Ben... I have my head down on some things but I saw this message pop-up and the subject line caught my attention as this is something I posted a Javascript hack for yesterday. In some cases you could just use "disable-output-escaping" but that isn't true of all XSLT processors as this is an optional part of the 1.0 spec. MSXML supports "doe" but Mozilla's TransforMiiX does not so when it comes to client-side transformations you can't always expect "doe" to be available. I've been coming across this issue a lot as of late as I am transforming raw Atom feeds using client-side transformations. In looking around I couldn't find any solutions that made a whole lot of sense so I wrote the following real quick. You can find the posting here >> http://www.xsltblog.com/codeoftheday/archives/2005/02/disable_output_1.html << Please excuse the state in which the posting is in as I am going through a pretty major redesign and build for my blog. None the less, here's the code: function doeHack(outputString, target){ // create reusable RegEx objects for "<", ">", and "&" var lt = new RegExp("<", "g"); var gt = new RegExp(">", "g"); var amp = new RegExp("&", "g"); //create a reusable object represented by the target elements "id" value var targetElement = document.getElementById(target); //change the value of that objects "innerHTML" property using the RegEx objects and the "replace" method of client-side Javascript targetElement.innerHTML = outputString.replace(lt, "<").replace(gt, ">").replace(amp, "&"); } I should note that I am using "Sarissa"'s serialize method to turn a DOM object into an XML string but this obviously doesn't change any escaped markup. So I am calling this function like so: doeHack(Sarissa.serialize(domobject), "id of HTML element to target output"); If you are unfamiliar with Sarissa I highly recommend it to help bring sanity into the disparate world that is client-side XML processing. You can download the latest build for Sarissa on SF.net >> http://sourceforge.net/projects/sarissa A bit more explanation for this code is available on the above posting link. Best of luck! <M:D/> On Thu, 3 Feb 2005 11:11:04 +0000, ben.pickering@xxxxxxxxxxxxxxxx <ben.pickering@xxxxxxxxxxxxxxxx> wrote: > Hi > > I have a bit of a problem in that a system out of my control is producing > "markup" looking like the following: > > <CONTENT> > This is <b>bold</b> > </CONTENT> > > i.e., with all the perfectly good markup escaped. > > I was wondering if anyone knows of a stylesheet which will convert text > nodes like this into proper markup, for a whole document. The above would > come out like: > > <CONTENT> > This is <b>bold</b> > </CONTENT> > > Ideally it would operate on nested tags, as the system (which will remain > nameless) is also breaking my <table>s. > > Thanks for any help. > Cheers, > Ben. > > -- <M:D/> :: M. David Peterson :: XML & XML Transformations, C#, .NET, and Functional Languages Specialist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] De-escaping markup, ben . pickering | Thread | RE: [xsl] De-escaping markup, Michael Kay |
[xsl] De-escaping markup, ben . pickering | Date | RE: [xsl] De-escaping markup, Michael Kay |
Month |