var xmldoc = document.implementation.createDocument("", "", null); xmldoc.async = false; var lem = xmldoc.createElement("z:row"); lem.setAttribute("reportno", lreportno.value);..........省略..........//加一行节点 var node = SelectSingleNode(xmldoc, "//rs:data/z:row"); node.appendChild(lem); 然后在谷歌浏览器控制台能看到新增后的xml节点树, 但是当执行 J SelectSingleNode(xmldoc, "//z:row/z:row[@tmpid = '" + tmpid + "']")
tmpid是xls里面自定义一个属性名,当tmpid 为1、2是老节点能取到,当是大于2,也就是新增后的节点的时候总是返回null,
unction 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执行效率看别人说是不怎么样。。还不如遍历
|