2

I've got an XML document that contains a tag that has well-formed HTML content. I need to get that HTML into my page using JavaScript. However, due to CMS issues, the HTML CANNOT be escaped with < ![CDATA[ ]]> or anything else, and the <> must be present, not encoded to &lt ; &gt ;

<submenu>
    <content>
        <div>
            <h3>Hello World</h3>
            <p>Lorem <a href="ipsum.html">ipsum</a></p>
        </div>
    </content>
</submenu>

I've used jQuery to get the XML and put the submenu's into an array. I'm able to get the text with:

$(menuArray[n]).find('content').text();

However, this just returns "Hello World Lorem ipsum". I need the HTML. Unfortunately jQuerys' .html() method doesn't work with XML.

Is there any other way? Thanks in advance.

thugsb
  • 22,856
  • 6
  • 30
  • 44

2 Answers2

7

Not overly clean but could you not use something like found in this example JQuery Object to Sring and do something like... var myHTML = $('<div>').append($(menuArray[n]).find('content').clone()).remove().html();

Ugly I know but should work

Community
  • 1
  • 1
Sam
  • 563
  • 4
  • 9
0

@Sam Nicholson gave us a good idea. I used it for a while, but now i solved my problem through another way.

By setting AJAX property 'dataType' to 'html' and forcing the server response to be text/html rather than text/xml. jQuery will let you use .html() to manipulate the nodes of your XML tree sent from your server

Diego ZoracKy
  • 2,227
  • 15
  • 14