以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 XML基础 』 (http://bbs.xml.org.cn/list.asp?boardid=1) ---- 请问我的这个代码怎么老出问题,帮我看看,谢谢 (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=62524) |
-- 作者:nbdxkfq -- 发布时间:5/13/2008 9:54:00 AM -- 请问我的这个代码怎么老出问题,帮我看看,谢谢 <% Dim newnode Set xmldoc =Server.CreateObject("Microsoft.XMLDOM") xmldoc.load(Server.MapPath("index.xml")) set xmlNode=xmldoc.documentElement nodelength=xmlNode.childNodes.length-1 xmldoc.async=false for i = 0 to nodelength Set newnode=xmlNode.childNodes.item(i) xmlNode.removeChild(newnode) next xmldoc.save(Server.MapPath("index.xml")) %> 这个在浏览器上总是提示我:无效的过程调用或参数: 'xmlNode.removeChild' 我试着把Set newnode=xmlNode.childNodes.item(i)里面的i换成0,结果可以用,没问题, 我在for语句后面加了一个response.write(i),检查i的传递,结果是正确了,请问怎么办,谢谢 顺便问问用什么样子的语句可以做修改xml里面的数据用,谢谢,我现在想的是把语句去掉,然后在添加上一条,有没有不用去掉,直接可以修改的?谢谢 |
-- 作者:Qr -- 发布时间:5/13/2008 2:22:00 PM -- 假设nodelength=10,因为节点删除后并不存在一个空节点,而是后续节点补上来,而nodelength不会改变,它是程序执行删除节点命令前就定义了的。当程序删除了5个节点并再次循环后,i=6,而此时DOM对象中才有5个节点,节点xmlNode.childNodes.item(6)当然就不存在,错误就理所当然了。 删除结果:0,2,4,6,8节点被删除,1,3,5,7,9没有被删除 而xmlNode.childNodes.item(0)始终指向DOM对象中的第一个节点,与i的变化无关,当然没问题了。此时的i,只是告诉程序执行10次循环。 重设节点值如果不想用替换的方法,可以考虑通过nodeVlaue="节点值"的文件,具体看DOM手册。 |
-- 作者:zh2208 -- 发布时间:5/13/2008 5:48:00 PM -- 解释的挺详细。。辛苦了。。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
78.125ms |