JavaScript操作XML主要用DOMParser解析字符串为DOM对象、XMLSerializer序列化回字符串,并配合DOM API查询修改;现代浏览器原生支持,无需额外库。
JavaScript 操作 XML 数据主要依靠浏览器内置的 DOMParser(解析 XML 字符串为 DOM 对象)和 XMLSerializer(将 XML DOM 对象序列化为字符串),配合标准 DOM API 进行查询、修改、遍历等操作。现代浏览器均原生支持,无需额外库。
L 字符串这是最常用的方式,把一段 XML 文本转成可操作的文档对象。
DOMParser 实例,调用 parseFromString(),传入 XML 字符串和 MIME 类型 "text/xml"(或 "application/xml")documentElement 会是 null,建议检查 parseError(仅 IE 支持)或通过 getElementsByTagName("parsererror").length 判断是否出错解析后的 xmlDoc 就是一个标准的 XML 文档对象,支持所有 DOM 查询方法。
getElementsByTagName("title"):获取所有 元素(返回 HTMLCollection)querySelector("book[id='1'] title"):用 CSS 选择器精准定位getAttribute("id") 获取属性值textContent 或 firstChild.nodeValue 获取元素文本内容(注意空白文本节点)querySelector + textContent 组合,简洁可靠可使用 document.implementation.createDocument() 创建空 XML 文档,再用 createElementNS、setAttribute、appendChild 等方法构建结构。
const doc = document.implementation.createDocument("", "", null);
const root = doc.createElement("root"); doc.appendChild(root);
createElementNS("http://example.com/ns", "item")
XMLSerializer 转回字符串:new XMLSerializer().serializeToString(doc)
直接解析本地字符串无限制;但通过 fetch 或 XMLHttpRequest 加载外部 XML 文件时,受同源策略约束。
Access-Control-Allow-Origin
eval 或 innerHTML 处理不可信 XML,防止注入风险zuojiankuohaophpcn)会被自动解码,无需手动处理