js实现xml输出
使用 XMLSerializer 序列化 DOM 对象
在浏览器环境中,可以通过 XMLSerializer 将 DOM 对象转换为 XML 字符串。该方法适用于已构建的 DOM 节点(如 Document 或 Element)。
const doc = document.implementation.createDocument(null, 'root');
const element = doc.createElement('child');
element.textContent = 'This is content';
doc.documentElement.appendChild(element);
const serializer = new XMLSerializer();
const xmlString = serializer.serializeToString(doc);
console.log(xmlString);
输出结果示例:
<root><child>This is content</child></root>
手动拼接 XML 字符串
对于简单需求,可直接通过字符串拼接生成 XML。需注意转义特殊字符(如 <, >, & 等)。

function createSimpleXML(data) {
return `<?xml version="1.0" encoding="UTF-8"?>
<root>
<name>${escapeXML(data.name)}</name>
<value>${escapeXML(data.value)}</value>
</root>`;
}
function escapeXML(str) {
return str.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"');
}
const data = { name: "Test", value: "A & B" };
console.log(createSimpleXML(data));
输出结果示例:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<name>Test</name>
<value>A & B</value>
</root>
使用第三方库(如 xmlbuilder2)
对于复杂 XML 结构,推荐使用库如 xmlbuilder2。它提供链式 API 并自动处理转义。

安装:
npm install xmlbuilder2
示例代码:
import { create } from 'xmlbuilder2';
const obj = {
root: {
'@version': '1.0',
child: {
'@attr': 'value',
'#': 'Content'
}
}
};
const xml = create(obj).end({ prettyPrint: true });
console.log(xml);
输出结果示例:
<root version="1.0">
<child attr="value">Content</child>
</root>
注意事项
- 字符编码:确保声明正确的编码(如
UTF-8)。 - 转义处理:手动拼接时需转义所有特殊字符,避免 XML 注入问题。
- 命名空间:复杂 XML 需处理命名空间,建议使用库简化操作。
- 性能:大文件建议使用流式生成(如
xmlbuilder2的流 API)。






