2012-05-09 68 views
0

我试着去分析基础上,下面的例子在IE的XML字符串:http://dean.edwards.name/weblog/2006/04/easy-xml/加载并解析XML,IE

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
<meta charset="UTF-8"> 
<title></title> 

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript"> 

    $(function(){ 

     var xml = document.createElement("xml"); 
     xml.src = '<test><node1>Test</node1></test>'; 
     document.body.appendChild(xml); 
     var xmlDocument = xml.XMLDocument; 
     document.body.removeChild(xml); 

    }); 

</script> 
</head> 
<body> 

</body> 
</html> 

Fiddle

但是,它不工作。我没有错误,但没有发生任何事情。

有什么方法来生成基于一个有效的XML字符串在IE客户端的XML文件? activeX是唯一的选择吗?

在此先感谢

回答

0

ActiveX肯定是一种选择。该代码会是这样的:

var xml = '<test><node1>Test</node1></test>'; 
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async = "false"; 
xmlDoc.loadXML(xml); 

alert(xmlDoc.documentElement.nodeName); 
+0

我的主要问题是,IE犯规它显示为一个XML。我想它是一个MIME类型的问题:有任何想法如何将字符串呈现为XML文件? – Johan

+0

@Johan:我真的不明白你想做什么,对不起。你能详细说明一下吗? –

+0

我想要在新窗口中打开xml字符串,在IE中呈现为常规xml文档,而不是HTML页面。就像当你用IE打开任何XML文件一样。 – Johan

4

我有工作不创建一个XML对象,而是创建一个包装DIV而不是一个变体:

<script type="text/javascript"> 
    $(function(){ 
    var div, xmlDocument; 
    div = document.createElement('div'); 
    div.innerHTML = '<xml><test><node1>Test</node1></test></xml>'; 
    document.body.appendChild(div); 

    xmlDocument = div.firstChild.XMLDocument; 
    document.body.removeChild(div); 
    }); 
</script>