Разбор контента, как XML, с помощью jQuery - PullRequest
2 голосов
/ 30 июня 2010

У меня есть этот контент из одного входного значения:

var xml_url  = $("input").val();
alert(xml_url);

Выход:

<trans>
    <result>
        <item1>1</item1>
        <item2>content</item2>
        <item3>NA</item3>
        <item4>0</item1>
    </result>
</trans>

Структура в виде файла XML. Я хочу получить эти данные.

У меня есть этот код:

<script language="javascript">
    $(document).ready(function(){
        var xml_url  = $("input").val();
          $(xml_url).find("result").each(function()  
          {         
            alert($(this).find("item3').").text());
          });
    });
</script>

Он отлично работает в Firefox, но не в IE7 / 8.

Есть предложения? Большое спасибо.

1 Ответ

2 голосов
/ 30 июня 2010

Никогда не полагайтесь на jQuery для анализа XML.

См

Используйте правильный анализатор, чтобы выполнить работу, а затем используйте jQuery, чтобы найти нужные узлы. Приведенный вами пример работает с Firefox, но не с Chrome, Safari или IE. Функция ниже создаст документ XML из строки.

function parseXML(text) {
    var doc;

    if(window.DOMParser) {
        var parser = new DOMParser();
        doc = parser.parseFromString(text, "text/xml");
    }
    else if(window.ActiveXObject) {
        doc = new ActiveXObject("Microsoft.XMLDOM");
        doc.async = "false";
        doc.loadXML(text);
    }
    else {
        throw new Error("Cannot parse XML");
    }

    return doc;
}

Использовать как:

// Parse and construct a Document object
var xml = parseXML(xml_url);

// Use jQuery on the object now
$(xml).find("result").each(function()  
{
    alert($(this).find("item3").text());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...