perl:如何顺序解析xml文件
发布时间:2020-12-16 06:22:34 所属栏目:大数据 来源:网络整理
导读:我有一个 XML文件,它描述了我可以在UDP通道上交换的数据结构. 例如: 这是我的输入XML文件,描述了我的数据结构. ds uint32 name='a'/ uint32 name='b'/ string name='c'/ int16 name='d'/ uint32 name='e'//ds 使用perl的XML解析此XML文件:简单,允许我生成
我有一个
XML文件,它描述了我可以在UDP通道上交换的数据结构.
例如: 这是我的输入XML文件,描述了我的数据结构. <ds> <uint32 name='a'/> <uint32 name='b'/> <string name='c'/> <int16 name='d'/> <uint32 name='e'/> </ds> 使用perl的XML解析此XML文件:简单,允许我生成以下哈希 $VAR1 = { 'uint32' => { 'e' => {},'a' => {},'b' => {} },'int16' => { 'name' => 'd' },'string' => { 'name' => 'c' } }; 如您所见,在解析之后,我无法弄清楚字段’e’相对于数据结构起点的相对位置. 我想找出每个元素的偏移量. 我尝试搜索perl XML解析器,它允许我按顺序解析XML文件,类似于’getnexttag()’类型的功能,但找不到任何功能. 以编程方式执行此操作的最佳方法是什么?如果不是perl,那么哪种其他语言最适合做这项工作? 解决方法
你需要使用带有适当回调的流式解析器,当涉及到更大的数据集时,这也将提高解析速度(并且如果正确完成,可以减少内存消耗),这是一个很好/很棒的事情.
我建议您使用XML :: SAX,该模块的介绍可在以下链接下找到: > XML::SAX::Intro 为start_element提供回调,这样您就可以一次读取每个元素的值. 你能给我一个简单的例子吗? 是的,我已经拥有了! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |