我的代码从Ajax调用中获取JSON,该调用包含XML,并通过它读取一些信息.
虽然XML的解析在Chrome中运行良好,但它不在IE中,因为在IE中,outerHTML返回undefined.
我已经经历了几个帖子并尝试了几种可能的解决方案但没有成功.
$.ajax({
url: 'getJSONwithXML.do',type:'POST',data:'',dataType: 'json',cache: false
}).done(function(data) {
var jsonResp = JSON.parse(data.data.respuesta);
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(jsonResp,"text/xml");
var texto = $(xmlDoc).find('texto').prop('outerHTML');
console.log(texto); // <--- undefined in IE
$('body').append('
我在jsonResp下得到的xml是:
在Chrome或Fireforx下,texto会返回
这就是我想要的(texto标签中的HTML代码),但在Internet Explorer中我得到了未定义.
我见过textContent属性,但这不是我想要的,因为它不是HTML代码.
有任何想法吗?
最佳答案
Internet Explorer不为XML文档中的节点提供outerHTML属性(也不是innerHTML).您可以使用XMLSerializer
(在IE 9中)解决这个问题:
var node = $(xml).find('texto')[0]; // get DOM node
// Try outerHTML. If not available,use XMLSerializer
var texto = node.outerHTML || new XMLSerializer().serializeToString(node);