0

我正在尝试解析外部 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);
}

谢谢

4

1 回答 1

0

您需要将 HTML 包装在“cdata”“包装器”中。

<tabs-df>

    <negocio rel="100natural">
        <url>100natural.com</url>
        <promo_info><![CDATA[Sucursales participantes: <br /><b>Insurgentes y Metepec</b>]]></promo_info>
        <legales><![CDATA[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>

在这里阅读更多... http://www.w3schools.com/xml/xml_cdata.asp

于 2013-10-18T00:45:45.467 回答