我正在尝试解析外部 xml,但在尝试跨受支持的浏览器以 html 格式获取信息时遇到了麻烦。使用 dataType: 'html' 在除 IE7 和 IE8 之外的任何地方都可以正常工作,它什么都不做。
之后使用 dataType: 'xml' 可以很好地使用 .text() 获取数据,但我需要 xml 节点内的 html 格式。控制台抛出“未捕获的类型错误:无法调用未定义的方法‘替换’。” 当我尝试在数据类型上使用 .html() 时,在每个浏览器上:'xml'。
我该如何解决这个问题?
这是我的设置:
我像这样通过ajax加载外部.xml
var data_fill;
var $xml = $.ajax({
url: 'negocios.xml',
dataType: 'html',
success: function(data){
data_fill = data;
},
error: function(data){
console.log('Error loading XML data');
}
});
XML的一般结构是:
<directorio>
<tabs-df>
<negocio rel="100natural">
<url>100natural.com</url>
<promo_info>Sucursales participantes: <br /><b>Insurgentes y Metepec</b></promo_info>
<legales>Vigente al 30 de septiembre de 2014. <br />Válido al pagar con The Gold Elite Credit Card American Express<sup>®</sup><br /> o con The Platinum Credit Card American Express<sup>®</sup>.<br />Válido en restaurantes a partir de las 14 hrs. al cierre. No aplica en fast food. <br />No aplica con otras promociones o descuentos.<br /> Consulta sucursales participantes.<br /> Se deberá solicitar el descuento al pedir la cuenta.
</legales>
</negocio>
</tabs-df>
然后我用这个函数构建一个解析 xml 的弹出窗口:
function fill_popup($target,$group){
var $xml_node = $($group,data_fill);
$($xml_node).find("negocio[rel='"+$target+"']").each(function () {
$url = $(this).find('url').text();
$legales = $(this).find('legales').html();
});
console.log($legales);
}
谢谢