是否能够修改XML文件?
不行,使用客户端JavaScript无法修改XML文件。你可以在你的客户端JavaScript编写的应用中对一个外部XML文件的内容任意操作来显示你所希望得到的内容,但是却不能使用用户的输入来修改XML文件。

解决方案 »

  1.   

    上面的xml文件是一个独立的文件,aa.xml文件。
    是说不能用js来操作它?只能读取?
      

  2.   

    我在网上查的,你查查看
    google javascript 修改XML文件
      

  3.   

    var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM") //加载文档
    //doc.load("b.xml");//创建文件头
    var p = doc.createProcessingInstruction("xml","version=’’1.0’’  encoding=’’gb2312’’");    //添加文件头
        doc.appendChild(p);//用于直接加载时获得根接点
    //var root = doc.documentElement;//两种方式创建根接点
    //    var root = doc.createElement("students");
        var root = doc.createNode(1,"students","");    //创建子接点
        var n = doc.createNode(1,"ttyp","");        //指定子接点文本
            //n.text = " this is a test";
        
        //创建孙接点
        var o = doc.createElement("sex");
            o.text = "男";    //指定其文本    //创建属性
        var r = doc.createAttribute("id");
            r.value="test";        //添加属性
            n.setAttributeNode(r);    //创建第二个属性    
        var r1 = doc.createAttribute("class");
            r1.value="tt";
            
            //添加属性
            n.setAttributeNode(r1);        //删除第二个属性
            n.removeAttribute("class");        //添加孙接点
            n.appendChild(o);        //添加文本接点
            n.appendChild(doc.createTextNode("this is a text node."));        //添加注释
            n.appendChild(doc.createComment("this is a comment\n"));
        
            //添加子接点
            root.appendChild(n);
        
        //复制接点
        var m = n.cloneNode(true);        root.appendChild(m);
            
            //删除接点
            root.removeChild(root.childNodes(0));    //创建数据段
        var c = doc.createCDATASection("this is a cdata");
            c.text = "hi,cdata";
            //添加数据段
            root.appendChild(c);
        
        //添加根接点
        doc.appendChild(root);    //查找接点
        var a = doc.getElementsByTagName("ttyp");
        //var a = doc.selectNodes("//ttyp");    //显示改接点的属性
        for(var i= 0;i<a.length;i++)
        {
            alert(a[i].xml);
            for(var j=0;j<a[i].attributes.length;j++)
            {
                alert(a[i].attributes[j].name);
            }
        }    //XML保存(需要在服务端,客户端用FSO)
        //doc.save();
        
        //查看根接点XML
        if(n)
        {
            alert(n.ownerDocument.xml);
        }//-->    //XML保存(需要在服务端,客户端用FSO)
        //doc.save();
      

  4.   

    <input type="button" value="插入一条新记录" onclick="addRecord()">
    <input type="button" value="删除的user_id为[002]的那条记录" onclick="deleteRecord()">
    <input type="button" value="更新user_id为[001]记录的name为[一家人]" onclick="updateRecord()">
    <script language="javascript">
    var xmldoc=new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM") 
    xmldoc.load("123.xml");
    var root = xmldoc.documentElement;
    var record = xmldoc.selectNodes("//userInfo");
    function addRecord()
    {
    var newRecord=xmldoc.createNode(1,"userInfo","");
    var user_id=xmldoc.createNode(1,"user_id","");
    user_id.text="003";
    var name=xmldoc.createNode(1,"name","");
    name.text="李四";
    var q_id=xmldoc.createNode(1,"q_id","");
    q_id.text="200602070005";
    var q_name=xmldoc.createNode(1,"q_name","");
    q_name.text="永远幸福";
    var check_time=xmldoc.createNode(1,"check_time","");
    check_time.text="2006-2-17";
    newRecord.appendChild(user_id);
    newRecord.appendChild(name);
    newRecord.appendChild(q_id);
    newRecord.appendChild(q_name);
    newRecord.appendChild(check_time);
    root.appendChild(newRecord);
    alert(root.xml);
    }
    function deleteRecord()
    {
    for(i=0;i<record.length;i++)
    {
    if(record[i].firstChild.text=="002")
    {
    root.removeChild(record[i]);
    alert(root.xml);
    break;
    }
    }
    }
    function updateRecord()
    {
    for(i=0;i<record.length;i++)
    {
    if(record[i].firstChild.text=="001")
    {
    record[i].childNodes[1].text="一家人";
    alert(root.xml);
    break;
    }
    }
    }
    </script>