2011-02-12 100 views
2

我有一个XML文档,其中包含具有格式良好的HTML内容的标签。我需要使用JavaScript将该HTML添加到我的页面中。但是,由于CMS问题,HTML不能用<![CDATA []]>或其他任何内容进行转义,并且<>必须存在,而不是编码为& lt; & gt;使用JavaScript/jQuery从XML获取HTML

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

我已经使用jQuery来获取XML并将子菜单放入数组中。我能够用得到的文本:

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

然而,这只是返回的“Hello World Lorem存有”。我需要HTML。不幸的是,jQuerys的.html()方法不适用于XML。

有没有其他办法?提前致谢。

+0

它适用于我使用浏览器的xml解析器。 – kjy112 2011-02-12 21:56:52

回答

7

不是过于干净,但你能不能使用的东西就像这个例子JQuery Object to Sring发现这样做...... var myHTML = $('<div>').append($(menuArray[n]).find('content').clone()).remove().html();

丑,但我知道应该工作

+0

确实如此。谢谢。 – thugsb 2011-02-12 22:30:42

+0

这将抛出SCRIPT5022:DOM异常:IE9上的HIERARCHY_REQUEST_ERR(3) – 2012-12-03 19:45:48

0

@Sam尼科尔森给我们是个好主意。我用了一段时间,但现在我通过另一种方式解决了我的问题。

通过设置AJAX性能'的dataType''HTML',迫使服务器的响应是text/html的而不是文本/ XML。 jQuery将允许您使用.html()来操纵从您的服务器发送的XML树的节点。