[英]Write an XML file in javascript
我需要使用 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 的功能和属性
您可以使用加载 XML
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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.