xml-js API全解析:四大核心函数(xml2js/xml2json/js2xml/json2xml)使用指南
xml-js 是一款功能强大的 XML 与 JavaScript/JSON 转换工具,它提供了四个核心函数:xml2js、xml2json、js2xml 和 json2xml,帮助开发者轻松实现 XML 与 JSON/JavaScript 对象之间的高效转换。无论是处理配置文件、API 响应还是数据交换,这些工具函数都能满足你的需求。
快速开始:安装与基本配置
要开始使用 xml-js,首先需要通过 npm 或 yarn 安装:
npm install xml-js
# 或
yarn add xml-js
安装完成后,你可以在项目中导入所有核心函数:
const convert = require('xml-js');
核心函数详解
xml2js:XML 转 JavaScript 对象
功能:将 XML 字符串转换为 JavaScript 对象,支持灵活的配置选项。
基础用法:
const xml = '<root><name>xml-js</name></root>';
const options = { compact: true, spaces: 4 };
const jsObject = convert.xml2js(xml, options);
常用选项:
compact: 布尔值,控制输出对象的结构(紧凑/详细)spaces: 格式化输出时的缩进空格数trim: 是否修剪文本节点的空白字符
xml2json:XML 直接转 JSON 字符串
功能:将 XML 字符串直接转换为 JSON 字符串,省去中间转换步骤。
基础用法:
const xml = '<root><version>1.0.0</version></root>';
const jsonString = convert.xml2json(xml, { compact: true, spaces: 2 });
实用场景:
- API 响应转换
- 配置文件转换
- 数据持久化存储
js2xml:JavaScript 对象转 XML
功能:将 JavaScript 对象转换为 XML 字符串,支持丰富的格式化选项。
基础用法:
const jsObject = { root: { name: { _text: 'xml-js' } } };
const xml = convert.js2xml(jsObject, { compact: true, spaces: 4 });
高级选项:
doctypeFn: 自定义文档类型处理函数elementNameFn: 自定义元素名称转换函数attributesFn: 自定义属性处理函数
json2xml:JSON 字符串转 XML
功能:将 JSON 字符串直接转换为 XML 字符串,适合处理 JSON 数据源。
基础用法:
const json = '{"root": {"version": "1.0.0"}}';
const xml = convert.json2xml(json, { compact: true, spaces: 2 });
实际应用示例
示例 1:XML 转 JSON
const xml = `
<book>
<title>XML与JSON转换指南</title>
<author>xml-js团队</author>
<price>29.99</price>
</book>
`;
const json = convert.xml2json(xml, { compact: true, spaces: 2 });
console.log(json);
示例 2:JavaScript 对象转 XML
const book = {
book: {
title: { _text: 'XML与JSON转换指南' },
author: { _text: 'xml-js团队' },
price: { _text: 29.99 }
}
};
const xml = convert.js2xml(book, {
compact: true,
spaces: 4,
doctype: { pubID: '', sysID: '' }
});
console.log(xml);
高级配置选项
xml-js 提供了丰富的配置选项,可通过类型定义文件 types/index.d.ts 查看完整选项列表。主要配置类别包括:
- XML2JS 选项:控制 XML 到 JavaScript 对象的转换行为
- XML2JSON 选项:控制 XML 到 JSON 字符串的转换行为
- JS2XML 选项:控制 JavaScript 对象到 XML 的转换行为
错误处理与常见问题
处理无效 XML
当处理可能包含错误的 XML 时,可以使用错误捕获机制:
try {
const result = convert.xml2js(invalidXml);
} catch (e) {
console.error('XML 解析错误:', e.message);
}
处理命名空间
对于包含命名空间的 XML,可以使用 namespaceKey 选项保留命名空间信息:
const options = {
compact: true,
namespaceKey: '_ns'
};
const result = convert.xml2js(xmlWithNamespaces, options);
总结
xml-js 提供的四大核心函数(xml2js、xml2json、js2xml、json2xml)为 XML 与 JSON/JavaScript 对象之间的转换提供了全面解决方案。通过灵活的配置选项,你可以轻松处理各种复杂的转换需求。无论是简单的数据转换还是复杂的 XML 文档处理,xml-js 都能提供高效可靠的转换能力。
要了解更多详细信息,可以查阅项目测试文件 test/ 中的示例代码,或查看类型定义文件 types/index.d.ts 获取完整的 API 文档。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



