1

Perl新手在这里。有人可以告诉我如何使用 perl 从这个 xml 文件中提取数据并格式化我需要的输出吗?我会使用 XML::Simple 还是将其作为 fh 打开并以某种方式拆分?谢谢你。

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

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

测试.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
4

2 回答 2

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
于 2011-04-20T04:28:22.257 回答
0

由于作者本人不建议将 XML::Simple 用于新代码...

不鼓励在新代码中使用此模块。其他模块也可以提供更直接和一致的接口。特别是,强烈推荐使用 XML::LibXML。

您可能有兴趣查看https://metacpan.org/pod/XML::LibXML::Simple

该模块是对 XML::Simple 的直接重写(由 Grant McLean 编写),将 XML::LibXML 解析器用于 XML 结构,其中原始模块使用普通的 Perl 或 SAX 解析器。

于 2014-03-20T10:01:45.230 回答