使用 JavaScript/jQuery 从 XML 获取 HTML
我有一个 XML 文档,其中包含一个具有格式良好的 HTML 内容的标记。我需要使用 JavaScript 将该 HTML 放入我的页面中。但是,由于 CMS 问题,HTML 无法使用 << 进行转义。 ![CDATA[ ]]>或其他任何内容,以及 <>必须存在,而不是编码为 < >
<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 ipsum”。我需要 HTML。不幸的是,jQuery 的 .html() 方法不适用于 XML。
还有其他办法吗?提前致谢。
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 < ; > ;
<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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不太干净,但是您不能使用本示例中找到的JQuery 对象来Sring 并做类似的事情...
var myHTML = $('
').append($(menuArray[n]).find('content').clone()).remove().html();
我知道很丑,但应该可以用
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
@Sam Nicholson 给了我们一个好主意。我使用了一段时间,但现在我通过另一种方式解决了我的问题。
通过将 AJAX 属性 'dataType' 设置为 'html' 并强制服务器响应为 text/html 而不是 text/xml 。 jQuery 将允许您使用 .html() 来操作从服务器发送的 XML 树的节点
@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