在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一 读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";
三 更多 常用参数:
xml-simple模块详细参考:http://search.cpan.org/~grantm/XML-Simple-2.18/lib/XML/Simple.pm
完! |
请发表评论