如何将简单的xml文件解析为可读格式

问题描述:

Perl新手在这里。有人可以亲切地告诉我如何使用Perl从这个XML文件中提取数据,并将输出格式设置为任何我需要的?我会使用XML :: Simple或将其作为fh打开并以某种方式拆分它?谢谢。如何将简单的xml文件解析为可读格式

使用XML::Simple的文档对我来说似乎并不简单。

例如,我有一个小的xml文件,看起来像这样。

的test.xml

<?xml version="1.5" encoding="UTF-8"?><org.apache.Content duration="277135" count="51" numDirs="50" bytesUsed="110133451"/> 

我想转换属性=“值”对具有可读性像csv文件,:或不过,我想将其打印出来。

例:

duration:277135 count:51 numDirs:50 bytesUsed:110133451 

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 
+0

谢谢你的帮助。如果内容位于单独的xml文件中,也可以将'$ xml'作为文件读入?我会怎么做? – cjd143SD 2011-04-20 04:35:05

+0

是的,你可以通过提供xml文件的路径,比如'my $ xml =“\ path \ to \ test.xml”;' – 2011-04-20 04:42:47

+0

完美。谢谢! – cjd143SD 2011-04-20 04:45:23

由于XML ::简单,不建议用作者自己的新代码...

的不鼓励在新代码中使用此模块。其他模块是 可用,提供更直接和一致的 接口。尤其强烈建议使用XML :: LibXML。

您可能会感兴趣的检查出https://metacpan.org/pod/XML::LibXML::Simple

该模块是XML的钝重写::简单(格兰特麦克莱恩)使用 的XML ::的libxml解析器XML结构,其中原始使用 平原Perl或SAX解析器。