jQuery使用一些html代码解析xml。请帮忙

时间:2011-03-31 08:25:13

标签: jquery html xml

我无法从一个非常简单的XML文件中获取 html ,如下所示。在这种情况下,我只得到一个文本字符串为“mots< i>français< / i>”而不是HTML格式的文本“mots français”:

<content>
  <text id="n1">
    <fr><![CDATA[mots <i>français</i>]]></fr>
    <en><![CDATA[<i>english</i> words]]></en>
  </text>
... and so on
</content>

这样的xml文件使用这个jQuery脚本从XML获取字符串。然后,对于我想要不同语言内容的每个元素,我将一个值添加到 data - 属性(即&lt; p data-langtag = n1&gt; ...&lt; / p&gt;)。

$.ajax({
 type: "GET",
 url: defaults.file,
 dataType: "xml",
 success: function(xml) {
    $(xml).find('text').each(function() {
    var textId = $(this).attr("id");
    var text = $(this).find(defaults.lang).text();
    aTexts[textId] = text;
    });

    $.each($("*"), function(i, item){
    //alert($(item).attr("data-langtag"));
    if($(item).attr("data-langtag") != null)
    $(item).fadeOut(150).fadeIn(150).text(aTexts[$(item).attr("data-langtag")]);
    });
 }
});

在页面中有两个可点击的元素可以选择英语或法语 但它只使用XML中的简单文本 我甚至试过这个帮手... https://github.com/kamranayub/jQuery-XML-Helper但是没办法,它在这里不起作用。

你知道要解决这个问题吗? Tx很多

2 个答案:

答案 0 :(得分:0)

如果没有真正尝试这一点,我怀疑你的问题是你正在使用jQuery的text()方法来设置HTML,所以它正在逃避尖括号。尝试:

$(item).fadeOut(150).fadeIn(150).html(stuff)

答案 1 :(得分:0)

疯狂的猜测 - 第一次&amp; CDATA中的最后一个元素必须是HTML标记:

<fr><![CDATA[<span>mots <i>français</i></span>]]></fr>
<en><![CDATA[<span><i>english</i> words</span>]]></en>