2011-07-08 44 views
2
<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上使用jQuery非html标签,这段代码不会造成任何问题,但在Internet Explorer“newtag”和“othertag”是HTMLUnkownElements,所以没有办法正确解析它们。它不会比“新标签”更进一步。如何解析XML包括IE8

我看着它一点,并试图将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我得到“未定义”。

任何方式来解决在IE浏览器,或者我必须使用别的比jQuery来解析XML?

请注意,在真实情况下,从服务器接收到大量xml数据,并且解析比这更精致一些,jQuery非常有用。我也使用jQuery 1.5,但1.6并没有什么区别。

回答

3

可以使用parseXML

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

alert($title); 

这里是fiddle

+0

谢谢!它完美的作品。 – coyotte508

+0

+1感谢您的信息! – kasdega

+0

很高兴帮助! – Rafay