用javascript编写XML文件

用javascript编写XML文件,javascript,Javascript,我需要使用Java脚本编写一个XML文件。到目前为止,我能想到的代码如下 function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET", dname,

我需要使用Java脚本编写一个XML文件。到目前为止,我能想到的代码如下

function loadXMLDoc(dname) {    
    if (window.XMLHttpRequest) {
        xhttp = new XMLHttpRequest();
    }
    else {
        xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xhttp.open("GET", dname, false);
    xhttp.send();
    return xhttp.responseXML;
} 

function GenerateDocument() {
    var xmlDoc = loadXMLDoc("XMLFile.xml");

    newelm = xmlDoc.createElement("Company");
    newAtt = xmlDoc.createAttribute("Name");
    newAtt.nodeValue = "ABC";

    //newelm.setAttributeNode(newAtt);
    x = xmlDoc.getElementsByTagName("Companies");
    x.appendChild(newelm);
}
我可以在xmlDoc对象中看到元素和属性,但无法将子元素和属性添加到XML文件中。感谢您的帮助


谢谢

正如xato所提到的,您将无法修改通过AJAX调用加载的实际文件。浏览器中的JavaScript通常不允许您编写文件。但是,您可以在完成修改后将XML写入浏览器,或者将其发送回服务器,由服务器端脚本编写

编辑:操作完XML文档后,可以使用XMLSerializer将其作为文本写入浏览器,或将其存储在字符串中

var s = new XMLSerializer();
document.write(s.serializeToString(xmlDoc));

来源:

如果XML很大,可以考虑使用SAX解析器! 通过JS
您还可以使用zXml.js,它将处理跨浏览器的依赖关系,并提供类似于IE的功能和属性

您可以使用

xmldom = new ActiveXObject("MSXML2.DOMDocument.6.0");

//loading an xml file is async by default
//use xmldom.async = false; to load sync

xmldom.load("addr.xml"); //give the xml file as an input 

//check if xml has errors
if(xmldom.parseError.errorCode)
{
    alert(xmldom.parseError.reason);
    return;
}
else //successfully loaded xml
{
     e = document.createElement("test");
     e.setAttribute("abc","xyz"); 

     document.getElementById("id").appendChild(e);
}
你为什么不使用

      xmlDoc.setAttribute("Name","abc");

谢谢你,迈克。你能给我一个例子或模拟代码来说明如何做到这一点吗。我将要生成的XML是一个大约有300个节点的大文件。我想通过java脚本生成一个新的XML文件。xmldom对象中没有load()方法