XML 和 json 中提取

1       思路

XML和json中提取:

读取字串,用xml和json函数解析成多层结构数据,再运算成需要的目标

2       举例

2.1   xml中提取

有xml文件xml.xml,数据如下所示:

从多层 xml 取出分类和明细,形成二维表,结果如下:

编写SPL脚本:


A

1

=file("xml.xml").read().import@x()

2

=A1.xml.li.(form).new(h3,p.select.option)

3

=A2.news(option;h3:name,~:time)

4

=file("result.txt").export@t(A3)

A1   把xml的数据读成串,串按xml解析成多层序表

A2  按多层级节点整理序表

A3  将序表A2中的多个option值展开,合并成新的序表

A4  结果导出到result.txt

2.2   json中提取

有json文件json.json,数据如下所示:

需要把这个多层json二维化,存为csv。identities字段里还有俩字段,拆到上级同级,结果如下:

编写SPL脚本:


A

1

=file("json.json").read()

2

=json(A1).users.new(displayName,givenName,surname,extension_user_type,identities.signInType:issuerType,identities.issuerAssignedId,extension_timezone,extension_locale,extension_tenant)

3

=file("json.csv").export@tc(A2)

简要说明:

A1   把json文件中的数据读成串

A2  串按json格式解析成多层序表,用new函数将identities.signInType和identities.issuerAssignedId拆到上级

A3  结果导出到json.csv