我的代码通过Ajax调用获取JSON,其中包含XML,并通过读取其中的一些信息来处理它。
虽然在Chrome中解析XML运行良好,但在IE中却不行,因为在IE中outerHTML
返回undefined
。
我已经阅读了几篇帖子并尝试了几个可能的解决方案,但都没有成功。
JavaScript代码如下:
$.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('<div>' + texto + '</div>');
});
我在
jsonResp
下得到的XML如下所示:<?xml version="1.0" encoding="UTF-16"?>
<envio>
<version>1.0.0</version>
<anuncios>
<remitente>
<nodoRemitente>Nodo Remitente</nodoRemitente>
</remitente>
<anuncio>
<emisor>
<nodoEmisor>Nodo Emisor</nodoEmisor>
</emisor>
<metadatos>
<id>16249</id>
</metadatos>
<contenido>
<texto>
<p>
Notificación de prueba
</p>
<p>
Notificación de prueba
</p>
<p>
Notificación de prueba
</p>
</texto>
</contenido>
</anuncio>
</anuncios>
</envio>
在Chrome或Fireforx中,
texto
返回:<texto>
<p>
Notificación de prueba
</p>
<p>
Notificación de prueba
</p>
<p>
Notificación de prueba
</p>
</texto>
我想要的是texto
标签内的HTML代码,在Internet Explorer浏览器中却返回了undefined
。
我已经尝试使用textContent
属性,但它并不返回HTML代码。
有什么想法吗?
$(this).find('texto')
永远不会返回undefined
,只会返回一个jQuery对象,其长度为0。 - Heretic MonkeyjsonResp
下获得的xml字符串。 - bentakayze