基于字符串IE加载和解析xml

时间:2012-05-09 17:04:12

标签: javascript jquery xml internet-explorer activex

我试图根据以下示例解析IE中的xml字符串:http://dean.edwards.name/weblog/2006/04/easy-xml/

<!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

然而,它不起作用。我没有错,但没有发生任何事情。

有没有办法在IE中基于有效的xml字符串在客户端生成XML文件? activeX是唯一的选择吗?

提前致谢

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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);