Как анализировать XML, включая не HTML-теги, с помощью Jquery в IE8 - PullRequest
2 голосов
/ 08 июля 2011
<script type="text/javascript">

var data='<newtag><othertag attr1="abc" /></newtag>';
var foo = $(data).children('othertag');
var result = foo.attr('attr1');

alert(result);

</script>

В Mozilla Firefox этот код не вызывает никаких проблем, но в Internet Explorer "newtag" и "othertag" являются HTMLUnkownElements, поэтому нет способа их правильно проанализировать.Это не пойдет дальше, чем "newtag".

Я немного его посмотрел и попытался добавить parseXml:

<script type="text/javascript">

function parseXml(xml)
{
    if (jQuery.browser.msie)
    {
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.loadXML(xml);
        xml = xmlDoc;
    }
    return xml;
}

var data= parseXml('<newtag><othertag attr1="abc" /></newtag>');
var foo = $(data).children('othertag');
var result = foo.attr('attr1');

alert(result);

</script>

Но не повезло.С Mozilla я получаю «abc» в предупреждении, с IE я получаю «undefined».

Любой способ решить эту проблему в IE, или мне нужно использовать что-то еще, кроме jQuery для разбора XML?*

Обратите внимание, что в реальном случае с сервера получено много xml-данных, и синтаксический анализ немного более сложен, чем jQuery.Я также использую jQuery 1.5, но 1.6 не имеет значения.

1 Ответ

3 голосов
/ 08 июля 2011

вы можете использовать parseXML

var xml = "<newtag><othertag attr1='abc'/></newtag>",
    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc ),
    $title = $xml.find( "othertag" ).attr("attr1");

alert($title);

вот скрипка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...