自定义脚本语言引擎开发纪实 -解析xml格式数据

本文记录了开发自定义脚本语言引擎的过程,该引擎能够将XML数据转换为键值对。XML中没有key的数据,引擎会将其属性名设为'self$data'的值。示例中展示了XML的不同解析方式,包括sid字段和Ele子节点的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注

脚本引擎会把xml转化为k-v对。不过xml的data是没有key即属性名的,引擎会给他设置为属性self$data的值


xml例子

<Doc>
    <sid>
        <product id="10236"/>
        <combo id="50789"/>
    </sid>
    <Ele>
        <item cs="天黑.css">项目1</item>
        <item cs="落日.css">项目2</item>
    </Ele>
</Doc>

可以发现sid字段的字节点名字都不一样,Ele的子节点名字一样,他们解析的方式有点不同。

脚本代码

xmlDoc="<Doc><product id=\"10236\"/><combo id=\"50789\"/><Ele><item cs=\"天黑.css\">项目1</item><item cs=\"落日.css\">项目2</item></Ele></Doc>"

xml=js.xml.parse(xmlDoc)
//object属性名是区分大小写的
js.debug.log("[script] 解析sid子节点的元素");
js.debug.log("[script] " + xml.Doc.product.id);
js.debug.log("[script] " + xml.Doc.combo.id);


js.debug.log("[script] 遍历Ele节点元素");
items=xml.Doc.Ele
foreach(k,v in items)
	js.debug.log("[script] " + k + " " + v.cs + " "  + v.self$data);
end

执行结果

[1888] [script] 解析sid子节点的元素
[1888] [script] 10236
[1888] [script] 50789
[1888] [script] 遍历Ele节点元素
[1888] [script] item 天黑.css 项目1
[1888] [script] item 落日.css 项目2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值