<?xml version="1.0" encoding="UTF-8"?> <root> <row> <field name='CURRENT_DATE' value='2011-10-25'/> <field name='GATEWAY_NAME' value='HESJ-PS-WAP-SYS01'/> <field name='REQ_NUM' value='119339386'/> <field name='TODAY_SUCC_RATE' value='95.95'/> <field name='TODAY_TOP_LINE_USER_NUM' value='412'/> <field name='GATEWAY_AVG_DELAY' value='33.03'/> </row> <row> <field name='CURRENT_DATE' value='2011-10-26'/> <field name='GATEWAY_NAME' value='HESJ-PS-WAP-SYS01'/> <field name='REQ_NUM' value='3318745'/> <field name='TODAY_SUCC_RATE' value='95'/> <field name='TODAY_TOP_LINE_USER_NUM' value='127'/> <field name='GATEWAY_AVG_DELAY' value='37.56'/> </row> </root> 如何用perl 从上面的xml 文件中读取数据?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
没人知道吗?######open(FH, "XMLfilename"); while(<FH>) { #do something ,the data in $_ variable; } close(FH);######
open my ($fh), '<', $xmlfilename or die; while (<$fh>) { #对当前行$_做相关处理 } close(fh); ######希望你看一下我的例子 :
http://www.hidinga.com/blog/download/?b=code&q=Perl/Syntax/xml
######有专业的模块:XML::Simple
######楼上说的对,直接API 用Dumper 看下结构 一个个拿出来就行了
my $xmlfile = dirname($0) . "\testaaa.xml";
my $xmlcontent = XMLin($xmlfile);
print Dumper($xmlcontent);
my @lines = @{$xmlcontent->{Baselines}->{Baseline}};
my $a = @lines;
print($a);
foreach $bases (@lines)
{
print($bases->{deliverer}.":");
print($bases->{content}."\n");
if($bases->{deliverer} eq "NPF")
{
print($bases->{content}."\n");
}
}</pre>
######
my $xmlfile = dirname($0) . "\\testaaa.xml";
my $xmlcontent = XMLin($xmlfile);
print Dumper($xmlcontent);
my @lines = @{$xmlcontent->{Baselines}->{Baseline}};
my $a = @lines;
print($a);
foreach $bases (@lines)
{
print($bases->{deliverer}.":");
print($bases->{content}."\n");
if($bases->{deliverer} eq "NPF")
{
print($bases->{content}."\n");
}
} 有一行报错: Can't use an undefined value as an ARRAY reference 第九行: my
@lines = @{$xmlcontent->{Baselines}->{Baseline}}; ###### 本地已经有这两个package了。