js实现xml输出
使用 DOM API 生成 XML
在 JavaScript 中可以通过 DOM API 创建 XML 文档对象并构建节点结构。document.implementation.createDocument() 方法用于创建空 XML 文档:
const xmlDoc = document.implementation.createDocument(null, '', null);
const root = xmlDoc.createElement('root');
xmlDoc.appendChild(root);
const item = xmlDoc.createElement('item');
item.setAttribute('id', '1');
item.textContent = 'Example content';
root.appendChild(item);
const xmlString = new XMLSerializer().serializeToString(xmlDoc);
console.log(xmlString);
输出结果:
<root><item id="1">Example content</item></root>
使用字符串拼接生成 XML
对于简单 XML 结构,可以直接拼接字符串模板:

const data = { id: 1, name: 'Test' };
const xmlString = `
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id="${data.id}">${data.name}</item>
</root>
`.trim();
console.log(xmlString);
输出结果:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id="1">Test</item>
</root>
使用第三方库生成 XML
xml-js 库可以将 JavaScript 对象转换为 XML:

const { js2xml } = require('xml-js');
const obj = {
_declaration: { _attributes: { version: '1.0', encoding: 'UTF-8' } },
root: {
item: [
{ _attributes: { id: 1 }, _text: 'First' },
{ _attributes: { id: 2 }, _text: 'Second' }
]
}
};
const xmlString = js2xml(obj, { compact: true, spaces: 2 });
console.log(xmlString);
输出结果:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id="1">First</item>
<item id="2">Second</item>
</root>
浏览器环境下的 XML 处理
现代浏览器支持 DOMParser 和 XMLSerializer:
// 解析 XML 字符串
const parser = new DOMParser();
const xmlDoc = parser.parseFromString('<root><item>test</item></root>', 'text/xml');
// 修改 XML
const newItem = xmlDoc.createElement('item');
newItem.textContent = 'new content';
xmlDoc.querySelector('root').appendChild(newItem);
// 序列化为字符串
const serializer = new XMLSerializer();
const updatedXml = serializer.serializeToString(xmlDoc);
注意事项
- 包含特殊字符时需要转义(如
<转义为<) - 添加 XML 声明时需指定正确编码
- 复杂嵌套结构建议使用 DOM API 或第三方库
- 服务器端 Node.js 环境需使用
xmldom等兼容库替代浏览器 API






