JavaScript操作XML分解析与生成两部分:浏览器用DOMParser和XMLSerializer,Node.js需xml2js等第三方库;解析时注意MIME类型、错误检测及大小写敏感性,生成时需手动美化格式。

JavaScript 操作 XML 主要分两部分:解析已有 XML 数据(如从服务器获取的 XML 字符串或文件),以及生成新的 XML 结构。现代浏览器原生支持 DOMParser 和 XMLSerializer,无需额外库即可完成基本操作;Node.js 环境则需借助第三方库(如 xml2js 或 xpath)。
用 DOMParser 解析 XML 字符串
这是最常用、兼容性良好的方式,适用于浏览器环境。把 XML 字符串转为可遍历的 DOM 文档对象。
- 创建
DOMParser实例,调用parseFromString(),第二个参数必须是"text/xml"或"application/xml" - 解析失败时不会报错,但返回的文档中
documentElement为null,可通过检查parseError(IE)或document.querySelector("parsererror")(Chrome/Firefox)判断 - 成功后可用标准 DOM 方法(
querySelector、getElementsByTagName、getAttribute等)提取数据
示例:
const xmlStr = ``; const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xmlStr, "text/xml"); if (xmlDoc.querySelector("parsererror")) { console.error("XML 解析失败"); } else { const title = xmlDoc.querySelector("title").textContent; // "The Great Gatsby" const lang = xmlDoc.querySelector("title").getAttribute("lang"); // "en" } The Great Gatsby F. Scott Fitzgerald
用 XMLSerializer 生成 XML 字符串
当你已有一个 XML 文档对象(比如用 document.implementation.createDocument() 创建的),可以用它转回格式化字符串。
立即学习“Java免费学习笔记(深入)”;
- 新建空 XML 文档:
document.implementation.createDocument(null, "root", null) - 用
createElement、setAttribute、appendChild构建结构 - 最后用
new XMLSerializer().serializeToString(doc)转为字符串
注意:生成的 XML 不自动缩进,如需美化需手动添加换行和空格,或使用外部工具。
本文档主要讲述的是使用JSON进行网络数据交换传输;JSON(JavaScript ObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,非常适合于服务器与客户端的交互。JSON采用与编程语言无关的文本格式,但是也使用了类C语言的习惯,这些特性使JSON成为理想的数据交换格式。 和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON的数据格式非常简单,您可以用 JSON 传输一个简单的 St
处理远程 XML 文件(如 AJAX 加载)
通过 fetch 获取 XML 响应时,用 response.text() 得到字符串再解析,不要直接用 response.json()。
fetch("data.xml").then(r => r.text()).then(str => new DOMParser().parseFromString(str, "text/xml"))- 服务端需正确设置响应头
Content-Type: application/xml或text/xml,否则某些旧浏览器可能解析异常 - 跨域请求需服务端配置 CORS,否则会触发同源策略拦截
Node.js 中操作 XML
Node.js 没有内置 DOMParser,推荐使用成熟库:
- xml2js:最流行,支持 XML ↔ JSON 双向转换,适合简单读写
- libxmljs:基于 libxml2,性能好、功能全(XPath、XSLT),但需编译原生模块
-
xpath(配合
xmldom):轻量组合,模拟浏览器 DOM API,适合习惯 DOM 操作的场景
例如用 xml2js 解析:
const xml2js = require('xml2js');
const parser = new xml2js.Parser();
parser.parseString('Alice Bob ', (err, result) => {
if (!err) console.log(result.note.to[0]); // "Alice"
});
不复杂但容易忽略:XML 对大小写敏感、标签必须闭合、属性值必须加引号。解析前确保 XML 格式合法,否则静默失败很常见。










