javascript写xml的问题
代码如下:
var xmlDoc1 = new ActiveXObject("Msxml2.DOMDocument");
var xmlDoc2 = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc1.load("test.xml");
var rootNode = xmlDoc1.documentElement;
document.write("here is :" + rootNode.text + "<br>");
var newNode = xmlDoc2.createElement("memo");
newNode.setAttribute("m", "n");
rootNode.appendChild(newNode);
xmlDoc1.save("test.xml");
之前都正常,也能够在页面上打印出来xml里第一个节点的内容,
但是执行到xmlDoc1.save的时候,就说不能够写入,换成绝对路径
如"C:\\text.xml"也不行,为什么啊?怎样解决呢?
问题点数:40、回复次数:11Top
1 楼net_lover(【孟子E章】)回复于 2005-07-15 16:15:28 得分 20
web上不允许与本地文件进行操作的。Top
2 楼yizia(椅子)回复于 2005-07-15 16:23:21 得分 10
server.mappath("test.xml")
你没有说在什么环境下运行,如果是执行服务器端脚本,还需要把这个文件的文件夹的匿名用户写入权限打开。
如果是客户端脚本,我想,除了文件夹的安全设置,还有ie的安全设置,都会影响到存储。
Top
3 楼kindwell(kind)回复于 2005-07-15 16:33:53 得分 0
yizia(椅子),我是用javascript写的,应该不会涉及到server.mappath
的问题吧。我是在本机执行这个东西,ie安全设置的是默认的,文件夹
的安全设置,指的是什么?
孟子兄,帮我想想办法吧,用javascript读写access和text在本地都可以
执行,为什么就是xml不能呢?再帮我想想好吗?Top
4 楼ssm1226(雨中人(虚心学习))回复于 2005-07-15 16:50:46 得分 10
IE安全问题,如果允许写文件的话,那不就太不安全了
Top
5 楼kindwell(kind)回复于 2005-07-15 16:52:32 得分 0
ssm1226(雨中人) ,是在本地对文件操作啊,对text文本和excel文件
都可以读写的,为什么就是xml不行呢?Top
6 楼ssm1226(雨中人(虚心学习))回复于 2005-07-15 17:09:35 得分 0
你可以本地对text文件读写?!~~Top
7 楼kindwell(kind)回复于 2005-07-15 17:14:18 得分 0
下面这段是对text进行读写。
function getCountFromTxt() {
var filePath = location.href.substring(0, location.href.indexOf("Cnt2.htm"));
document.write("before cut:" + path + ". <BR>");
var path = filePath + "count.txt";
path = path.substring(8);
document.write("after cut:" + path + ". ");
var nextCnt = 0;
var fso, f1, ts, s;
var ForReading = 1;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile(path);
ts = f1.OpenAsTextStream(ForReading, true);
s = ts.ReadLine();
nextCnt = eval(s) + 1;
document.write("now count is :" + s);
ts.Close();
ts = f1.OpenAsTextStream(ForWriting, true);
ts.WriteLine(nextCnt);
ts.close();
}
下面这段是对excel进行读写。
function getCountFromExcel() {
var filePath = location.href.substring(0, location.href.indexOf("Cnt2.htm"));
var path = filePath + "TEST.XLS";
var sss;
var ExcelSheet;
ExcelApp = new ActiveXObject("Excel.Application");
var oAddin = ExcelApp.Workbooks.Open(path);
sss = oAddin.ActiveSheet.Cells(1,1).Value;
oAddin.Application.Quit();
ExcelSheet = new ActiveXObject("Excel.Sheet");
// Make Excel visible through the Application object.
ExcelSheet.Application.Visible = false;
// Place some text in the first cell of the sheet.
ExcelSheet.ActiveSheet.Cells(1,1).Value = "2";
// Save the sheet.
ExcelSheet.SaveAs(path);
// Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit();
document.write("excel cnt:" + sss);
}
Top
8 楼ssm1226(雨中人(虚心学习))回复于 2005-07-15 17:15:47 得分 0
这样操作的话,对客户端太不安全了吧~~~Top
9 楼ssm1226(雨中人(虚心学习))回复于 2005-07-15 17:19:19 得分 0
你是如何运行你程序的,以:http://方式访问还是file:///方式?Top
10 楼kindwell(kind)回复于 2005-07-15 17:34:16 得分 0
对,这样不安全,而且保密性也不高,所以我只是想用来存储计数器这样的
小东西。
在本地执行,当然是通过files://方式了,在http://状态下是不可用的。
这个问题的产生,是因为我申请的免费个人空间,只支持静态页面和js,我
想在主页上添加个计数器,用申请来的免费计数器的话,打开我的主页的时候
还要再连到那个计数器的网站去,会拖慢我的页面的速度,所以我就一直努力
想找到能用javascript写计数器的方法。
用javascript操作access数据库和text文本文件,都是费尽力气才在本地调试
成功的,但是传上去以后却全是说没有建立对象的权限,或者不能操作其他的
数据库。我很懊恼,所以想再试试xml的方式,目前虽然只能做到在http://方
式下读出xml文件里的count,但是比起前两个方法,已经有进步了,前两个连
读出来count都做不到,唉。Top
11 楼yizia(椅子)回复于 2005-07-18 10:13:00 得分 0
不管是xml还是text,甚至与其他,你要通过在客户端执行的脚本把数据存储到服务器上?
假设你是asp程序员,<%...%>之间的代码是在服务器端执行的,只要你的空间支持写入,那么你可以存储文件或修改文件。
<script>...</script>是在客户端执行的,就是说谁打开了你的网站,那么就在谁的机器上运行,你说能存到服务器上吗?
这可能是最简单最容易理解的语言了。Top




