<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 не имеет значения.