perl读写xml

perl读写xml,第1张

概述一 读xml 1)xml实例 <?xml version="1.0" encoding="UTF-8"?> <employees>    <employee age = "30">     <name>linux</name>     <country>US</country>   </employee>     <employee age = "10">     <name>mac</name>

一 读xml 1)xml实例 <?xml version="1.0" enCoding="UTF-8"?> <employees>    <employee age = "30">     <name>linux</name>     <country>US</country>   </employee>     <employee age = "10">     <name>mac</name>     <country>US</country>   </employee>   <employee age = "20">      <name>windows</name>     <country>US</country>   </employee> </employees>   2)代码 use file::Basename; use XML::Simple; use Data::Dumper; my $xmlfile = dirname($0) . "\\employees.xml"; if (-e $xmlfile) {     print "-----------------------------------------\n";     my $userxs = XML::Simple->new(KeyAttr => "name");     my $userxml = $userxs->XMlin($xmlfile);     # print output     print Dumper($userxml);          my %allemployees = %{$userxml->{employee}};     foreach my $key (keys(%allemployees))     {       print $key . " ";       print $allemployees{$key}{"age"} . "\n";     }     print "-----------------------------------------\n";        my $userxsT = XML::Simple->new(ForceArray => 1);     my $userxmlT = $userxsT->XMlin($xmlfile);     # print output     print Dumper($userxmlT);           my @allemployeeT = @{$userxmlT->{"employee"}};     foreach my $employee (@allemployeeT)     {       print $employee->{"name"}[0] . " ";       print $employee->{"age"} . "\n";     }     }   3)结果   二 写xml 代码: use file::Basename; use XML::Simple; use Data::Dumper; print "-----------------------------------------\n"; # create array my @arr = [          {'country'=>'england','cAPItal'=>'london'},        {'country'=>'norway','cAPItal'=>'oslo'},        {'country'=>'india','cAPItal'=>'new delhi'} ]; # create object my $xml = new XML::Simple(NoAttr=>1,Rootname=>'daTaroot'); # convert Perl array ref into XML document  my $data = $xml->XMLout(\@arr,outputfile => "output1.xml"); print "-----------------------------------------\n"; my $str=<<_XML_STRING_; <config logdir="/var/log/foo/" deBUGfile="/tmp/foo.deBUG"> <server name="sahara" osname="solaris" osversion="2.6">   <address>10.0.0.101</address>   <address>10.0.1.101</address> </server> <server name="gobi" osname="irix" osversion="6.5">   <address>10.0.0.102</address> </server> <server name="kalahari" osname="linux" osversion="2.0.34">   <address>10.0.0.103</address>   <address>10.0.1.103</address> </server> </config> _XML_STRING_ my $xml_ref=XMlin($str,KeepRoot => 1); my $xml_str=XMLout($xml_ref,outputfile => "output2.xml"); print "-----------------------------------------\n";     三 更多 常用参数: KeyAttr => [ List ] # in+out - important or KeyAttr => { List } # in+out - important  表示读取出来的dict中的key。 ForceArray => 1 # in - important or ForceArray => [ names ] # in - important  表示dict中的子元素表示为array,而不是dict。 NoAttr => 1 # in+out - handy 表示是否将子元素和属性都写为属性,读入时是否忽略属性。 Rootname => 'string' # out - handy 表示写xml时的root节点名字。 KeepRoot => 1 # in+out - handy 表示是处理取root节点   xml-simple模块详细参考:http://search.cpan.org/~grantm/XML-Simple-2.18/lib/XML/Simple.pm   完! 感谢,Thanks!

总结

以上是内存溢出为你收集整理的perl读写xml全部内容,希望文章能够帮你解决perl读写xml所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1287276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存