日期:2014-05-16  浏览次数:20433 次

关于解析xml
请大家帮忙。多谢了。
我通过url请求回来这样的xml

 <?xml version='1.0' encoding='utf-8'?>

<metadata type='LABEL'>

<version>LABEL.1.06.0</version>

<list count="3">

<level width="9708">1</level>

<level width="8708">2</level>

<level width="7708">3</level>

</list>

</metadata>



我怎么面取的version 和 3个 width 呢?在chrome浏览器里
我试过了网上各种解析xml的方法,都不好使啊。
难道要变成string取出来么?
请指点。
------最佳解决方案--------------------
    function LoadXML(url) {
        var xhr = window.ActiveXObject ? new ActiveXObject("microsoft.xmlhttp") : new XMLHttpRequest()
        ,dom;
        xhr.open("get", url, false);
        xhr.send(null);
        if (0 == xhr.status 
------其他解决方案--------------------
 200 == xhr.status) {
            if (document.all && 0 == xhr.status) {//IE浏览器下非http的ajax请求xml文件无法生成XML的DOM对象,需要使用microsoft.xmldom重生生成
                dom = new ActiveXObject("microsoft.xmldom");
                dom.loadXML(xhr.responseText);
            }
            else dom = xhr.responseXML;
        }
        else aler('加载XML失败!' + xhr.responseText);
        return dom;
    }
    var dom = LoadXML("x.xml?_dc=" + new Date().getTime());/////注意修改路径
    if (dom) {
        var version = dom.getElementsByTagName('version')[0], levelNode = dom.getElementsByTagName('level'), arrWidth = [];
        version = version.firstChild.nodeValue;
        for (var i = 0; i < levelNode.length; i++) arrWidth[i] = levelNode[i].getAttribute('width');
        alert('version:' + version + '\nwidth数组:' + arrWidth)
    }

------其他解决方案--------------------
chrome需要通过http协议访问才行,XMLHttpRequest请求本地文件会出错
------其他解决方案--------------------
XMLHttpRequest cannot load http://ip/label/label.xml. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
dingwei.html:22Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101

提示了上面的。
也就是说我得整个真实的web服务么?
------其他解决方案--------------------
是的