我正在尝试创建具有大量XML编辑依赖关系的东西,并且我有一些关于如何做某些事情的问题。
我所知道的:
HTML编辑
XML方法编辑与HTML共享大多数方法(这是一种XML本身)
如何加载XML文档并进行导航
我的问题:
如何保存在javascript中编辑的XML文档或自动执行此操作
如何使用javascript
答案 0 :(得分:2)
不幸的是,你可能无法做你想做的事。 JavaScript / ECMAScript无法在没有任何直接交互的情况下直接写入文件(至少不能与典型文件系统中的文件类似,例如"我的文档"或"桌面"文件夹)。
首先,您可以将XML / HTML DOM保存为这样的字符串(仅适用于大多数浏览器和IE 9 +的更高版本):
if(typeof window.XMLSerializer == "undefined") {
throw new Error("No modern XML serializer found.");
}
var s = new XMLSerializer();
var xmlString = s.serializeToString( xmlDomVar );
之后,就保存数据而言,您只有2个选项(不使用额外的插件,甚至可能有一些限制):
将数据保存到沙箱文件中,该文件只有在用户提供localStorage权限后才能使用localStorage访问应用程序(存储在浏览器确定的位置,您无法定义& #34; C:\ User \ MyUser \ Desktop \ myfile.xml"作为位置)。
另存为Blob数据,然后请求用户下载。此方法不允许您定义用户保存它的位置,它只显示典型的"将文件另存为..."用户可以指定保存数据的位置的对话框。
用于创建"空白" xml文件......你不能。它必须至少包含开始和结束标签,浏览器将返回一个基本格式的HTML DOM,其中包含html,head和body标签。再一次,只能在IE9 +和大多数其他现代浏览器中使用:
if (typeof window.DOMParser != "undefined") {
parseXml = function(xmlStr) {
return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
};
} else {
throw new Error("No modern XML parser found.");
}
// This will create a new XML DOM containing whatever is in the string.
var newXmlDom = parseXml( '<xml></xml>' );
// This will create a basic HTML structure if you do not provide any valid XML.
var newHtmlDom = parseXml();