免责声明:以下答案假设您正在使用网络浏览器的 JavaScript 环境。
JavaScript 使用“XML DOM 对象”处理 XML。
您可以通过三种方式获取这样的对象:
1. 创建一个新的 XML DOM 对象
var xmlDoc = document.implementation.createDocument(null, "books");
第一个参数可以包含要创建的文档的名称空间 URI(如果该文档属于一个文档)。
Source: https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument
2. 使用 XMLHttpRequest 获取 XML 文件
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var xmlDoc = xhttp.responseXML; //important to use responseXML here
}
xhttp.open("GET", "books.xml", true);
xhttp.send();
3. 解析包含序列化 XML 的字符串
var xmlString = "<root></root>";
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, "text/xml"); //important to use "text/xml"
当您获得 XML DOM 对象后,您可以使用方法来操作它,例如
var node = xmlDoc.createElement("heyHo");
var elements = xmlDoc.getElementsByTagName("root");
elements[0].appendChild(node);
如需完整参考,请参阅http://www.w3schools.com/xml/dom_intro.asp http://www.w3schools.com/xml/dom_intro.asp
笔记:
重要的是,您不要使用文档命名空间提供的方法,即。 e.
var node = document.createElement("Item");
这将创建 HTML 节点而不是 XML 节点,并将生成具有小写标签名称的节点。与 HTML 标签名称不同,XML 标签名称区分大小写。
您可以像这样序列化 XML DOM 对象:
var serializer = new XMLSerializer();
var xmlString = serializer.serializeToString(xmlDoc);