perl基于条件解析xml文件中的特定值
有人能告诉我如何从xml文件中解析出特定信息吗?我应该用正则表达式吗 我正在使用perl基于条件解析xml文件中的特定值,perl,Perl,有人能告诉我如何从xml文件中解析出特定信息吗?我应该用正则表达式吗 我正在使用XML::Simple查看test.XML文件 例如,我想搜索字符串test-out-00000,如果它存在,请给我/打印大小=135860644 数据: 工作perl脚本: use strict; use warnings; use XML::Simple; use Data::Dumper; my $xml = $ARGV [0]; my $data = XMLin($xml); print Dumper(
XML::Simple
查看test.XML文件
例如,我想搜索字符串test-out-00000
,如果它存在,请给我/打印大小=135860644
数据:
工作perl脚本:
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $xml = $ARGV [0];
my $data = XMLin($xml);
print Dumper( $data );
foreach my $attributes (keys %{$data}){
print"$attributes:${$data}{$attributes}\n";
}
XML文件test.XML:
<?xml version="1.0" encoding="UTF-8"?>
<listing time="2011-09-30T02:49:39+0000" recursive="no" path="/source/customer/test" exclude="" filter=".*" version="0.20.202.1.1101050227">
<directory path="/source/feeds/customer/test" modified="2011-09-30T02:48:41+0000" accesstime="1970-01-01T00:00:00+0000" permission="drwx------" owner="test_act" group=""/>
<file path="/source/feeds/customer/test/test-out-00000" modified="2011-09-30T02:48:41+0000" accesstime="2011-09-30T02:48:41+0000" size="135860644" replication="3" blocksize="134217728" permission="-rw-------" owner="test_act" group=""/>
</listing>
我假设您总是在文件名中查找文本字符串?如果是,这是一种方法:
use strict;
use warnings;
use XML::Simple;
my $xml = $ARGV [0];
my $data = XMLin($xml);
my $size = 0;
if (exists $data->{file}->{path} and $data->{file}->{path} =~ /test-out-00000/) {
$size = $data->{file}->{size};
}
如果您的数据采用这种格式,您也可以使用XML::LibXML通过XPATH表达式获取值。我假设您总是在文件名中查找文本字符串?如果是,这是一种方法:
use strict;
use warnings;
use XML::Simple;
my $xml = $ARGV [0];
my $data = XMLin($xml);
my $size = 0;
if (exists $data->{file}->{path} and $data->{file}->{path} =~ /test-out-00000/) {
$size = $data->{file}->{size};
}
如果您的数据采用这种格式,那么您也可以使用XML::LibXML通过XPATH表达式获取值。谢谢。是的,我总是在路径中查找特定的文件名。这对我有用,谢谢。是的,我总是在路径中查找特定的文件名。这对我有用。