在Perl中,如何在不更改XML文件格式的情况下更改XML文件中的元素
发布时间:2020-12-15 21:15:24 所属栏目:大数据 来源:网络整理
导读:我有一个格式的XML文件: outer1 inner1 nameStonecold/name professionwarrior/profession orgwwf/org /inner1 inner1 nameShanebond/name professionBowler/profession orgnewzealand/org /inner1 inner1 namebrain schemidit/name professionChairman/pro
我有一个格式的XML文件:
<outer1> <inner1> <name>Stonecold</name> <profession>warrior</profession> <org>wwf</org> </inner1> <inner1> <name>Shanebond</name> <profession>Bowler</profession> <org>newzealand</org> </inner1> <inner1> <name>brain schemidit</name> <profession>Chairman</profession> <org>Google</org> </inner1> </outer1> 我想将Shanebond的价值改为Shane Bond. 我使用XML :: Simple,但结果是哈希. 我想要与输入文件相同的格式.例如:输出文件应如下所示: <outer1> <inner1> <name>Stonecold</name> <profession>warrior</profession> <org>wwf</org> </inner1> <inner1> <name>Shane Bond</name> <profession>Bowler</profession> <org>newzealand</org> </inner1> <inner1> <name>brain schemidit</name> <profession>Chairman</profession> <org>Google</org> </inner1> </outer1> 请告知如何做到这一点. 提前致谢. 我希望输出文件保存在同一目录中,如果可能的话,使用相同的名称.可能吗? 解决方法XML::Simple 提供了一些选项,允许您指定如何将输入转换为Perl数据结构以及如何输出该结构:
#!/usr/bin/perl use strict; use warnings; use XML::Simple; my $xml_file = 'b.xml'; my $xml = XMLin( $xml_file,KeepRoot => 1,ForceArray => 1,); $xml->{outer1}->[0]->{inner1}->[1]->{name} = 'Shane Bond'; XMLout( $xml,NoAttr => 1,OutputFile => $xml_file,); 如果您做任何有趣的事情, CPAN有过多的XML related modules.除非这是一个你必须处理的一次性问题,否则值得研究一些功能更强大,更适合的模块. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |