处理 XML

DOM Level 2 Core

DOM Level 2增加了document.implementationcreateDocument()方法。

此方法创建空文档。

let xmldom = document.implementation.createDocument(namespaceUri,root,doctype)

创建一个document对象标签名为<root>的新XML文档

let xmldom = document.implementation.createDocument('',root,null);
console.log(xmldom.documentElement.tagName);
let child = xmldom.createElement('child');
xmldom.documentElement.appendChild(child);

DOMParser类型

使用DOMParser,需要先创建它的一个实例,然后再调用parseFromString()方法。这个方法接收两个参数:要解析的XML字符串和内容类型(始终应该是“text/html”),返回值是Document的实例。

let parser = new DOMParser();
let xmldom = parser.parseFromString("<root><child/></root>","text/xml");

console.log(xmldom.documentElement.tagName);
console.log(xmldom.documentElement.firstChild.tagName);
let anotherChild = xmldom.createElement("child");
xmldom.documentElement.appendChild(anotherChild);

let children = xmldom.getElementsByTagName('child');
console.log(children.length);

将xml字符串解析为DOM文档。得到的DOM结构中<root>document元素

XMLSerializer类型

XMLSerializer类型用于把DOM文档序列化为XML字符串。

let serializer = new XMLSerializer();
let xml = serializer.serializeToString(xmldom);
console.log(xml)