使用 javascript 将 DOM 保存为 xml 文件

Gie*_*est 5 javascript xml dom

在我的 javascript 中,我有以下内容:

let person = document.createElement('person');
let name = document.createElement('name');
let surname = document.createElement('surname');
person.appendChild(name);
person.appendChild(surname);

let xml = person;
Run Code Online (Sandbox Code Playgroud)

如何将“xml”变量保存在文件中(仅使用 javascript)?OBS:内容不应以单行形式呈现,而应以树状结构呈现:

<person>
    <name></name>
    <surname></surname>
</person>
Run Code Online (Sandbox Code Playgroud)

Ric*_*ler 5

有一种非常简单的方法可以使用XMLSerializer.

这是过程:

  1. 向 XMLSerializer 提供一个元素以序列化为 XHTML(这是有效的 XML)。
  2. xhtml可以选择使用删除命名空间String.prototype.replace
  3. 使用vkbeautify进行漂亮打印(没有本地漂亮打印方式)

let person = document.createElement('person');
let name = document.createElement('name');
let surname = document.createElement('surname');
person.appendChild(name);
person.appendChild(surname);

// 1.) use XMLSerializer
let xml = new XMLSerializer().serializeToString(person);

// 2.) remove xml namespace
let xmlWithoutNamespace = xml.replace(' xmlns="http://www.w3.org/1999/xhtml"', '');

// 3.) use vkbeautify or your other favorite library to pretty print
console.log(vkbeautify.xml(xmlWithoutNamespace));
Run Code Online (Sandbox Code Playgroud)
<script src="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/vkbeautify/vkbeautify.0.99.00.beta.js"></script>
Run Code Online (Sandbox Code Playgroud)