【问题标题】:XML Creating, Editing and Saving in JS在 JS 中创建、编辑和保存 XML
【发布时间】:2015-03-22 22:25:58
【问题描述】:

我正在尝试创建具有大量 XML 编辑依赖项的东西,我对如何做某些事情有一些疑问。

我知道的:

  • HTML 编辑

  • XML 方法编辑与 HTML(它本身就是一种 XML)共享大多数方法

  • 如何加载和导航 XML 文档

我的问题:

  • 如何保存用 javascript 编辑的 XML 文档还是自动保存

  • 如何使用 javascript 创建空白 XML 文件

【问题讨论】:

    标签: javascript html xml xml-parsing


    【解决方案1】:

    很遗憾,您可能无法做您想做的事。 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 个选项(不使用一些额外的插件,甚至可能有许多限制):

    1. 在用户授予使用 localStorage 的权限后,将数据保存到只有使用 localStorage 的应用程序才能访问的沙盒文件(存储在浏览器确定的位置,您不能定义“C:\User\ MyUser\Desktop\myfile.xml”作为位置)。

    2. 另存为 Blob 数据,然后请求用户下载。此方法不会让您定义您希望用户将其保存在何处,它只是显示典型的“将文件另存为...”对话框,供用户指定保存数据的位置。

    对于创建“空白”xml 文件......你不能。它必须至少包含开始和结束标记,否则浏览器将返回包含 html、head 和 body 标记的基本格式的 HTML DOM。再一次,仅适用于 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多