当前位置 : 主页 > 网页制作 > JQuery >

如何在使用Jquery解析xml时保留html

来源:互联网 收集:自由互联 发布时间:2021-06-15
假设我有以下 XML结构: root item item1some text is bhere/b/item1 item2more text is here/item2 /item/root 我可以使用以下内容解析xml: $(responseXML).find('item').each(function(){ var first_text = $(this).find('item1').te
假设我有以下 XML结构:

<root>
 <item>
  <item1>some text is <b>here</b></item1>
  <item2>more text is here</item2>
 </item>
</root>

我可以使用以下内容解析xml:

$(responseXML).find('item').each(function(){
             var first_text = $(this).find('item1').text();
             var second_text = $(this).find('item2').text();
}

但是使用.text()时不会保留html. html()在jquery中不适用于xml.

关于如何在解析xml时保留内部html的任何想法?

嵌套您不希望在CDATA部分中解释为xml的部分
例如

<root>
 <item>
  <item1><![CDATA[some text is <b>here</b>]]></item1>
  <item2><![CDATA[more text is here]]></item2>
 </item>
</root>

编辑:注意,如果使用.text()不起作用,请尝试以下操作:

引自:http://dev.jquery.com/ticket/2425

I’ve just re-encountered this. For the curious my workaround is instead of using .text() to use this plugin I created (simply replace .text() with .getCDATA():

jQuery.fn.getCDATA = function() {
if($.browser.msie)
    return this[0].childNodes[0].nodeValue;
    // Other browsers do this
return this[0].childNodes[1].nodeValue;
 };

It ain’t pretty, but in my case did the job.

网友评论