javascript - 使用javascript将DOM保存为文件中的xml

标签 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;

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

<person>
    <name></name>
    <surname></surname>
</person>

最佳答案

有一种非常简单的方法可以使用 XMLSerializer 将您的文档序列化为 XML。 .

过程如下:

  1. 为 XMLSerializer 提供一个元素以序列化为 XHTML(这是有效的 XML)。
  2. 可选择使用 String.prototype.replace 删除 xhtml 命名空间
  3. 使用vkbeautify pretty-print (没有 pretty-print 的原生方式)

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));
<script src="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/vkbeautify/vkbeautify.0.99.00.beta.js"></script>

关于javascript - 使用javascript将DOM保存为文件中的xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175957/

相关文章:

jquery - 如何使用 jquery 将某些内容附加到空主体

javascript - Asp.net RegisterStartupScript 未触发

javascript - 使用 for 循环在 Javascript 中创建仅包含重复项的新数组

java - 将日志文件解析为 XML

java - 为什么 JAXB 不生成完整的类?

PHP nodeValue 剥离 html 标签 - innerHTML 替代方案?

javascript - 将 HTMLCollection 包装到 jQuery/Zepto 函数中?

javascript - JavaScript 新手。这段代码有什么问题?

javascript - 如何在不刷新网页的情况下调用 Controller 的方法?

java - 如何在 XSLT 2.0 中获取当前 xml 文件名?