假设我有以下 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
<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.