介绍
npm 包 camaro 是一个用于将 XML 转换成 JSON 的工具。它使用 XPath 或 CSS 选择器来定义转换规则,使 XML 转换成 JSON 更加灵活。同时,camaro 包括了一些其他功能,例如:缓存,验证,类型转换等。
安装
使用 npm 安装 camaro:
--- ------- ------
使用
使用 camaro 最主要的是定义转换规则。转换规则接受 XML 和 camaro 使用者定义的选择器,返回转换后的 JSON。
例如,假设我们需要将下面的 XML:
------ -------- ---------- ---------- ------------- --------- -------- ---------- ---------- ------------- --------- -------
转换成 JSON,我们可以使用以下转换规则:
----- - --------- - - ----------------- ----- --- - - ------ -------- ---------- ---------- ------------- --------- -------- ---------- ---------- ------------- --------- ------- - ----- -------- - - ------- ------------ - ----- ------- ---- ----- -- - ----- ------ - -------------- --------- -------------------
运行上面的代码将会输出以下结果:
- ------- - - ----- ----- ----- ---- ---- -- - ----- ----- ----- ---- ---- - - -
上面的转换规则使用了 XPath 选择器 //person
来选取每个 person
元素,并用一个对象来定义每个 person
元素的转换规则。
除了 XPath 选择器,camaro 还支持 CSS 选择器:
----- ----------- - - ------- ----------- - ----- ---------------------- ---- --------------------- -- -
更多选择器
除了标准的选择器,camaro 还提供了其他选择器供用户使用。
array
该选择器用于指定数组的成员,对于每个成员都应有不同的规则:
----- -------- - - ------ ---------- - ----- ------- ------- --------- ------- - -------------- - -- -
text
该选择器用于选择元素的文本,例如:
xml:
---------- ------------
template:
- -------- ------------ -
attribute
该选择器用于选择元素的属性:
xml:
------ ------ ------------------------------- ------ ------------------------------- -------
template:
- -------- ----------- - ----- -------- ----- --- -- -
namespace
该选择器用于指定命名空间:
----- - --------- - - ----------------- ----- --- - - ----- ------------------------------ ------------------------------- ------------- --------------- ------------- --------------- ------- - ----- -------- - - ------ ---------------------------- - ---------- ------ ------ --- -- - -------------------------- ----------
输出结果:
- ------ - - ---------- --------------------- ------ ---- ----- -- - ---------- --------------------- ------ ---- ----- - - -
更多选项
camaro 还提供了很多选项供用户使用,例如:
cache
: 是否缓存转换规则;returnFirst
: 是否只返回第一个匹配到的元素;format
: 是否格式化输出 JSON;normalize
: 是否将元素的文本进行规范化。
总结
camaro 可以很方便地将 XML 转换成 JSON。它可以使用 XPath 或 CSS 选择器来定义转换规则,并可以使用一些其他的选择器。同时,camaro 还提供了很多选项让用户定制转换规则的行为。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedaad8b5cbfe1ea06105b6