Perl新手在这里。有人可以告诉我如何使用perl从这个xml文件中提取数据并格式化我需要的输出吗?我会使用XML :: Simple还是将其作为fh打开并以某种方式拆分它?谢谢。
使用XML::Simple的文档对我来说似乎并不简单。
例如,我有一个看起来像这样的小xml文件。
的test.xml
<?xml version="1.5" encoding="UTF-8"?><org.apache.Content duration="277135" count="51" numDirs="50" bytesUsed="110133451"/>
我想将attribute =“value”对转换为csv文件,:
,或者我想将其打印出来。
例如:
duration:277135 count:51 numDirs:50 bytesUsed:110133451
答案 0 :(得分:3)
Use XML::Simple - Easy API to maintain XML (esp config files) or
see XML::Twig - A perl module for processing huge XML documents in tree mode.
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $xml = q~<?xml version="1.5" encoding="UTF-8"?>
<org.apache.Content duration="277135" count="51" numDirs="50" bytesUsed="110133451"/>~;
print $xml,$/;
my $data = XMLin($xml);
print Dumper( $data );
foreach my $attributes (keys %{$data}){
print"$attributes : ${$data}{$attributes}\n";
}
输出:
bytesUsed : 110133451
numDirs : 50
count : 51
duration : 277135
答案 1 :(得分:0)
由于作者自己不建议将XML :: Simple用于新代码......
不鼓励在新代码中使用此模块。其他模块是 可用,提供更直接和一致 接口。特别强烈建议使用XML :: LibXML。
您可能有兴趣查看https://metacpan.org/pod/XML::LibXML::Simple。
这个模块是对XML :: Simple(由Grant McLean)使用的直接重写 XML结构的XML :: LibXML解析器,原始使用 普通的Perl或SAX解析器。