考虑到兼容性,用:childNodes比较好。

解决方案 »

  1.   

    用xmlDom.GetElementsByTagName("RoomAmenityItem");
      

  2.   

    先遍历节点,删除文本节点或者空节点,DEMOfunction cleanWhitespace(node){
    for (var x=0; x<node.childNodes.length; x++) {
    var child = node.childNodes[x];
    //if it's a whitespace text node
    if ((child.nodeType == 3) && (!notspace.test(child.nodeValue))) {
    node.removeChild(node.childNodes[x]);
    //node.childNodes[x].removeNode();
    x--;
    }
    //elements can have text child nodes of their own
    if(child.nodeType == 1) {
    cleanWhitespace(child);
    }
    }
    }
      

  3.   

    删除文本节点似乎不是解决办法...
    我这里也没有特指XML DOM, HTML DOM同样有这个问题。
    node.getElementsByTagName('div')会找出node里面包含的所有div
    我试图这样写:node.childNodes.getElementsByTagName('div'),但是报错。
      

  4.   

    <html>
    <body>
    <script type="text/javascript">
    var str = "<Count><group name='信息科'><groupid>20050549</groupid><person>3</person><days>29</days><sum>19.7</sum><per>3.23</per></group></Count>";var BrowserName = navigator.appName;
    if (BrowserName == "Netscape")
    {
    //FireFox
    var objXml = (new DOMParser()).parseFromString(str,"text/xml");
    //自己查查资料
    alert(objXml.getElementsByTagName("group").item(0).attributes[0].value);// 信息科
    alert(objXml.getElementsByTagName("group").item(0).childNodes[0].firstChild.nodeValue);// 20050549
    alert(objXml.getElementsByTagName("group").item(0).childNodes[1].firstChild.nodeValue);
    alert(objXml.getElementsByTagName("group").item(0).childNodes[2].firstChild.nodeValue);
    alert(objXml.getElementsByTagName("group").item(0).childNodes[3].firstChild.nodeValue);
    alert(objXml.getElementsByTagName("group").item(0).childNodes[4].firstChild.nodeValue);
    }
    else
    {
    //IE
    try
    {
    var objXml = new ActiveXObject("Msxml2.DOMDocument");
    objXml.async = false;
    objXml.resolveExternals = false;
    objXml.loadXML(str);
    alert(objXml.selectSingleNode("/Count/group").getAttribute("name")); //信息科
    alert(objXml.selectSingleNode("/Count/group").childNodes[0].text); //20050549
    //同理取其他值
    }
    catch(err)
    {
    alert(err.message);
    }
    }
    </script>
    </body>
    </html>