SelectSingleNode函数贴出来看看,用的xpath?一般用getElementsByTagName获取节点来遍历兼容性好点

解决方案 »

  1.   

    网上找的
        function SelectSingleNode(xmlDoc, elementPath) {
                if (window.ActiveXObject) {
                    return xmlDoc.selectSingleNode(elementPath);
                }
                else {
                    try {
                        var xpe = new XPathEvaluator();
                        var nsResolver = xpe.createNSResolver(xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
                        var results = xpe.evaluate(elementPath, xmlDoc, nsResolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
                        var s = results.singleNodeValue;
                        return results.singleNodeValue;
                    }
                    catch (e) {
                        alert(e.message);
                    }
                    
                }
            }
      

  2.   

    document.getElementsByName("ldelpos")能取到所有的“删除”按钮所在的td列,但是这不是想要的。因为它没有过滤。我需要过滤得到被删除那行的tmpid,然后设置xml里的editmode属性,后台根据那个属性删除还是更新,document.getElementsById也是一样的道理
      

  3.   

        function getNode(doc, tmpid) {
            var row = doc.getElementsByTagName('z:row');
            for (var i = 0, j = row.length; i < j; i++) {
                if (row[i].getAttribute('tmpid') == tmpid) return row[i];
            }
            return null;
        }    var node = getNode(xmldoc,'3');
    xpath不怎么会,用你的代码在ie,firefox下测试都报错了,说namespace出错什么的。。用getElementsByTagName遍历下,非IE浏览器下xpath执行效率看别人说是不怎么样。。还不如遍历
      

  4.   

    这是我的namespace:<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">SelectSingleNode在火狐,谷歌下都有可以的,IE没测试。
    你那个方法应该空调吧,我用node.childNodes.item(index)方法取单行,加上JQ选择器取多行。
    暂时凑合用吧,你的方法应该和我的思路差不多