Node.js的fast-xml-parser库怎么用

月夜之吻
发布: 2025-12-13 13:49:13
原创
370人浏览过
fast-xml-parser 是轻量快速的无依赖 Node.js XML 解析库,支持 parse(XML→JS)、validate(语法校验)和 builder(JS→XML),默认属性用@_前缀、文本存#text,可通过选项控制类型转换与格式化。

node.js的fast-xml-parser库怎么用

fast-xml-parser 是一个轻量、快速、无依赖的 Node.js XML 解析库,适合把 XML 字符串转成 JavaScript 对象(parse),也支持反向操作(build)。它不基于 DOM,也不需要 XML Schema,开箱即用。

安装和基本导入

在项目中安装:

npm install fast-xml-parser

在代码中引入(ESM 或 CommonJS 都支持):

ESM 方式(推荐):

import { parse, validate, builder } from 'fast-xml-parser';
登录后复制

CommonJS 方式:

const { parse, validate, builder } = require('fast-xml-parser');
登录后复制

解析 XML 字符串为 JS 对象

最常用的是 parse()。默认行为会把属性转为 @_ 开头的键,文本内容放在 #text 键下。

Napkin AI
Napkin AI

Napkin AI 可以将您的文本转换为图表、流程图、信息图、思维导图视觉效果,以便快速有效地分享您的想法。

Napkin AI 2238
查看详情 Napkin AI
  • 简单示例:
const xml = `<book id="123"><title>JavaScript Guide</title><author>John Doe</author></book>`;
const jsObj = parse(xml);
// 结果:
// {
//   "book": {
//     "@_id": "123",
//     "title": { "#text": "JavaScript Guide" },
//     "author": { "#text": "John Doe" }
//   }
// }
登录后复制
  • 常用配置项(传入第二个参数 options):

ignoreAttributes: false → 默认 true,设为 false 可保留属性(如 id 直接作为 book.id
parseAttributeValue: true → 把属性值也尝试转数字/布尔/空字符串
parseTagValue: true → 同样处理文本内容(如 "true"true
ignoreDeclaration: true → 跳过 <?xml version="1.0"?> 声明
ignorePi: true → 忽略处理指令(如 <?xml-stylesheet ?>

验证 XML 格式是否合法

validate() 快速检查 XML 字符串语法,避免 parse 报错:

const isValid = validate(xml);
if (isValid !== true) {
  console.error('XML error:', isValid.err.msg);
} else {
  const result = parse(xml);
}
登录后复制

返回 true 表示合法;否则返回含 err 属性的对象,含行号、列号和错误信息。

把 JS 对象转回 XML 字符串

builder 实例生成 XML:

const obj = {
  book: {
    "@_id": "123",
    title: "JavaScript Guide",
    author: "John Doe"
  }
};
const builderOptions = {
  ignoreAttributes: false,
  format: true, // 美化缩进
  indentBy: "  "
};
const xmlBuilder = new builder(builderOptions);
const xmlString = xmlBuilder.build(obj);
登录后复制

注意:如果原始对象用了 @_xxx 表示属性,要确保 ignoreAttributes: false,否则属性会被当普通字段输出。

基本上就这些。它不复杂但容易忽略配置细节,建议第一次用时打开 parseAttributeValueparseTagValue,让数字/布尔更“像 JS”。

以上就是Node.js的fast-xml-parser库怎么用的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号