以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  JS使用dom创建xml文档为什么没有权限?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=39406)


--  作者:艾静静
--  发布时间:10/26/2006 9:10:00 PM

--  JS使用dom创建xml文档为什么没有权限?
最近老师让用dom在内存中创建一颗树再保存到一个xml文档中,我写了之后,运行时发现警告“没有权限”。保存的盘是FAT32分区,据说是要设文件夹属性里的安全什么的,但是我的文件夹右键属性里没有安全这个标签,只有常规和共享两个选项。希望高手指点一下,谢谢了。

源码如下:
<html>
   <head>
       <title>MyObject</title>
   </head>
   
   <body onload="createXML()">    
       <script type="text/javascript">
     var xmlDoc       
     function createXML()
      {
 
                xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
         xmlDoc.async=false;
 
                //创建两条处理指令
                var newPI=xmlDoc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
             xmlDoc.appendChild(newPI);
                var newPI1=xmlDoc.createProcessingInstruction("xml-stylesheet","type='text/xsl' href='invoice.xsl'");
             xmlDoc.appendChild(newPI1);
                   
                //创建根元素
         var documentElement=xmlDoc.createElement("documentElement");
             xmlDoc.appendChild(documentElement);

                //创建CDATA
         var newCD=xmlDoc.createCDATASection("This is a CDATASection node");
             xmlDoc.documentElement.appendChild(newCD);

                //创建一条注释
         var newComment=xmlDoc.createComment("创建节点和属性\n");
             xmlDoc.documentElement.appendChild(newComment);

         //创建元素invoice,其子元素customer,再为customer加上属性,
                var newel1=xmlDoc.createElement("invoice");
         var newel2=xmlDoc.createElement("customer");
             newel1.appendChild(newel2);
         var newatt=xmlDoc.createAttribute("ref");
             newatt.value="20040640107";
             newel2.setAttributeNode(newatt);

         //创建text节点,作为customer元素的内容
                var newtext=xmlDoc.createTextNode("U盘\n");
             newel2.appendChild(newtext);
             xmlDoc.documentElement.appendChild(newel1);

               //将写好的xml保存到文档中,此处不成功,提示“没有权限”
             xmlDoc.save("1.xml");
              }
 </script>    
       </body>
</html>
     
文档几乎包含了所有DOM的创建方法,可以为其他人提供点使用方法的例子。^_^

但是这个save没成功,是我用的方法不对吗,拜托大家提点提点。


--  作者:艾静静
--  发布时间:10/26/2006 10:19:00 PM

--  
收益于其它人的贴,我大概知道自己哪儿错了
请问,有没谁可以教一下怎样使用FSO保存修改过的文件呢?
--  作者:艾静静
--  发布时间:10/28/2006 11:30:00 AM

--  
哎,现在才知道原来还有客户端方法和服务端方法之分噢。
俺只想建颗树保存下来而已,换方法了。。。


--  作者:艾静静
--  发布时间:10/28/2006 11:35:00 AM

--  
自己搞定算了。。。。
1.在IIS下新建虚拟目录,我取的名字是try
2.在目录下新建文档createXML.asp
3.createXML.asp代码如下:
<%@Language="JAVASCRIPT"%>
<html>
   <head><title>MyObject</title>
      <meta http-equiv="content-type"
content="text/html;charset=gb2312">
 </head>
    <body>
  <%
       //创建DOM
   var xmlDoc=Server.CreateObject("Microsoft.XMLDOM");
       //创建处理指令
   var newPI=xmlDoc.createProcessingInstruction
                                                ("xml","version='1.0' encoding='gb2312'");
    xmlDoc.appendChild(newPI);   
   var newPI1=xmlDoc.createProcessingInstruction
                                             ("xml-stylesheet","type='text/xsl' href='invoice.xsl'");
    xmlDoc.appendChild(newPI1);
       //创建根节点
   var documentElement=xmlDoc.createElement("invoices");
    xmlDoc.appendChild(documentElement); 
       //创建 CDATA    
   var newCD=xmlDoc.createCDATASection
("This is a CDATASection node");
    xmlDoc.documentElement.appendChild(newCD);
    // 创建注释
   var newComment=xmlDoc.createComment("创建节点和属性");
    xmlDoc.documentElement.appendChild(newComment);
    //添加子元素
   var newel1=xmlDoc.createElement("invoice");
   var newel2=xmlDoc.createElement("customer");
    newel1.appendChild(newel2);
    //添加属性
   var newatt=xmlDoc.createAttribute("ref");
    newatt.value="20040640107";
    newel2.setAttributeNode(newatt);
    //添加文本结点
   var newtext=xmlDoc.createTextNode("U盘");
    newel2.appendChild(newtext);       
       xmlDoc.documentElement.appendChild(newel1);       //显示创建的XML
       Response.write("<xmp>" + xmlDoc.xml + "</xmp>");
    //保存xml文档      
       xmlDoc.save(Server.MapPath("goal.xml"));        
   %>   
     </body>
</html>
4.在IE中输入地址http://localhost/try/createXML.asp,显示出创建的XML文档内容;回到try目录下,生成文件goal.xml,实验成功。

我终于写完作业了。。。。。


--  作者:艾静静
--  发布时间:10/28/2006 11:38:00 AM

--  
写成的goal.xml是这样子滴:
<?xml version="1.0" encoding=”gb2312”?>
<?xml-stylesheet type="text/xsl" href="invoice.xsl"?>
<invoices>
<![CDATA[This is a CDATASection node]]>
<!--创建节点和属性-->
<invoice>
<customer ref="20040640107">U盘</customer>
</invoice>
</invoices>

--  作者:Web-beginner
--  发布时间:11/9/2006 3:29:00 PM

--  
好帖
--  作者:atan19a
--  发布时间:11/20/2006 4:34:00 PM

--  
好东西
呵呵我转到我的网站上了
不知道作者可以加下我QQ吗?
27329072
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
66.406ms