大侠们:请求讲解。
描述:我用ajax去更改xml文档的内容,html页面上提示更新成功了,但是在同一个文件夹(wwwroot)下面的xml没有被更改,,,我百度查了下,有人说,更改xml文档,这个xml不能在服务器端里面,需要在客户端,可是我把下面的带面里面xmlhttp.open("GET","book.xml",false);改成我E盘中xml如xmlhttp.open("GET","E:\book.xml",false);结果连找xml的信息都不行了。原来把xml和html同放在wwwroot里还可以搜索xml的信息
问题:能否不用php和asp等,,直接只使用ajax就可以修改xml文档的内容,如果可以,那么这个xml是必须客户端才可以吗? 如果只有客户端可以,那么如果去找这个文件,直接xmlhttp.open("GET","E:\book.xml",false)用了,不可以。。。麻烦大神们解答一下。
javascript中ajax代码如下。
<script> function k() { if(window.XMLHttpRequest) { var xmlhttp=new XMLHttpRequest(); } else {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","book.xml",false); xmlhttp.send(); xmldoc=xmlhttp.responseXML; var ne=xmldoc.createElement("kog"); var nt=xmldoc.createTextNode("kkkkk"); ne.appendChild(nt); x=xmlDoc.getElementsByTagName("book")[0]; x.appendChild(ne); document.getElementById("div").innerHTML=xmldoc.getElementsByTagName("book")[0].childNodes[1].childNodes[0].nodeValue;
} </script>
xml代码如下,,
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="cooking">abcde
<title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book>
<book category="children">abcde
<title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price>
</book>
</bookstore>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先,不论是PHP还是JS都不能修改客户端的文件。 你可以在客户端用JS修改XML数据,注意是数据,再传到服务器端用PHP保存成文档。######+1,网页不能允许你修改客户本地内容,得到数据然后后台根据这些数据再去读写服务器上的内容######我可以用js操作vba修改我本地的office文档,这是怎么回事######意识是不管xml放在服务器里面还是我本地的e盘里都不能修改吧?######回复 @業餘碼農 : 映射可能不准确,应该是理解成副本要好点。######回复 @業餘碼農 : 这两天脑壳想了很多。个人理解成,每个用户在处理php等的时候是获取其文档里面的一个映射,然后再处理。你说的fclose,我理解成很多用户在一个服务器里面映射了很多php文档,如果不关闭,每个映射在处理过程中都占用一定内存,但是~!~,如果没个用户使用映射的时间不一样,那么对于fclose就可有可无,因为反正用户使用映射完了传送数据给用户了,打开的文档就自动关闭,是把?######回复 @kog-7 : 而unset,不一定是用来销毁数组的。 也可以用来销毁数组元素的。比如unset( $arr['a'] ); 这样就是纯粹的数组函数了。 关于PHP事件,不知道可不可以这样称呼, PHP只有一种事件,就是请求事件,就是说只有客户端请求它才会响应并执行。 当然如果你在服务器设置了计划任务那就另当别论了。 以上都是我的个人观点。经验之谈。 不一定正确。######回复 @kog-7 : fclose你可能现在看不出作用。 但是大项目的时候,资源优化要做的很全面的。 一个用户读一个文件是1M,1000个用户同时读就是1G,并且占用1000个I/O资源,用完就手动fclose,而不是等到程序结束,这样就能在同一时刻减少I/O占用率( 有时你看到fclose靠近文件末尾,但那里有时并不代表程序结束。特别是面向对象程序设计 )。######回复 @業餘碼農 : 就是点击,或者某个状态生成了激活某处功能。######
######回复
@Infinity : 改xml的php,写在上面,感觉用了很多重复的话######回复
@業餘碼農 : 那好多人都去提鞋了~我只是好奇好奇,你要是提鞋的,我就是给别人檫菊花的~!~######。。。。要是有个人对自己的身份工作支支吾吾遮遮掩掩,要么他是个特工黑客要么他就是个提鞋的。你觉得我像不像特工呢?######回复
@業餘碼農 : 呵呵,搞那么多标签干嘛嘛,你就是你,我只想了解你是干嘛的。######回复
@kog-7 : 。。。。。。。。。。。。农二代工一代码后代。######就是这个改xml,感觉写多了<?php header("Content-type: text/html; charset=utf-8"); print '<style> body{ background:rgba(223,238,231,0.9); } .error{color:rgb(182,69,69);font-size:60%;} .iput { border:1px solid black; height:10%; background:rgb(223,238,231); font-family:"Microsoft YaHei",微软雅黑,helvetica; } #word0u { margin-left:2%; float:left; margin-top:5%; font-family:"Microsoft YaHei",微软雅黑,helvetica; } #input0u { list-style-type:none; float:left; margin-top:5%; } </style>'; print "<script> function closef() {window.parent.document.getElementById('screen').style.display='none';} </script>"; print '<body><button style="cursor:pointer;border:1px;right:0px;top:0px;font-family:arial;font-weight:bolder;position:absolute" onclick="closef()">X</button> '; $pro=true; if($_SERVER['REQUEST_METHOD']=="POST") { $pro=false; if(empty($_POST['user'])||empty($_POST['pw'])||empty($_POST['pw2'])) {$pro=true; print '<span class="error">'.iconv('gb2312','utf-8','请输入用户名和密码').' </span>';} if(strlen($_POST['user'])>15) {$pro=true; print '<span class="error">'.iconv('gb2312','utf-8','用户名要小于5位数').' </span>';} if(strlen($_POST['pw'])<5) {$pro=true; print '<span class="error">'.iconv('gb2312','utf-8','密码要大于5位数').' </span>';} if(empty($_POST['pw'])!=empty($_POST['pw2'])) {$pro=true; print '<span class="error">'.iconv('gb2312','utf-8','两次密码输入不一样').' </span>';} $xmluser=new DOMDocument; $xmluser->load('euser.xml'); $users=$xmluser->getElementsByTagName('user'); for($i=0;$i<$users->length;$i++) { if($users->item($i)->childNodes->item(0)->nodeValue==$_POST['user']) { $pro=true; print '<p class="error">'.iconv('gb2312','utf-8','有人用了这个用户名').'</p>';; break; } } } if(!$pro) { date_default_timezone_set('Asia/Shanghai'); $log= $xmluser->createElement('log'); $user= $xmluser->createElement('user'); $pw= $xmluser->createElement('pw'); $time=$xmluser->createElement('time'); $usert=$xmluser->createTextNode($_POST['user']); $pwt=$xmluser->createTextNode($_POST['pw']); $da=date("Y-m-d"); $timet=$xmluser->createTextNode($da); $user->appendChild($usert); $pw->appendChild($pwt); $time->appendChild($timet); $log->appendChild($user); $log->appendChild($pw); $log->appendChild($time); $xmluser->documentElement->appendChild($log); $xmluser->save('euser.xml'); print "<h2 style='font-family:微软雅黑,helvetica'>".iconv('gb2312','utf-8','欢迎').$_POST['user']." ".$da." ".iconv('gb2312','utf-8','您已注册')."</h2>"; $uu=$_POST['user']; $pp=$_POST['pw']; print "<script> window.parent.document.getElementById('user').innerHTML='hello<br>$uu'; window.parent.document.getElementById('login').style.display='none'; window.parent.document.getElementById('logon').style.display='none'; window.parent.document.getElementById('cookss').style.display='none'; window.parent.document.getElementById('clears').style.display='inherit'; window.parent.document.getElementById('chat').src='example1.html'; document.cookie='koguser=$uu'; </script></body>"; } else { print "<p style='font-family:arial;font-weight:bold;font-size:150%;letter-spacing:5px;margin-left:auto;margin-right:auto;width:70%;height:10%;text-align:center;margin-top:2%'>welcome</p>"; $_POST=array(); print "<form action='elog.php' method='post'><ul id='word0u'><li>".iconv('gb2312','utf-8','用户名')."</li><br><li>" .iconv('gb2312','utf-8','密码')."</li><br><li>" .iconv('gb2312','utf-8','再次确认密码')."</li></ul> <ul id='input0u'><li><input class='iput' type='text' name='user' size='20'/></li><br> <li><input class='iput' type='password' name='pw' size='20'/></li><br> <li><input class='iput' type='password' name='pw2' size='20'/></li></ul><div><input style='border:2px solid black;clear:left;font-family:helvetica;background:rgb(223,238,231);margin-left:42%;margin-top:3%;font-size:18px;width:100px;text-align:center' type='submit' value=".iconv('gb2312','utf-8','注册')."></div></form></body>"; } ?> ######