3

我想使用 XML::Parser 解析一个简单的字符串。这工作正常。但我不知道如何访问结果。

#!/usr/bin/perl

use Data::Dumper;
use XML::Parser;

my $parser = XML::Parser->new( Style => 'Tree' );
my $tree   = $parser->parse( '<xml type="test" Id="ca19cfd5" result="1 test 2 test 3" elapsed="9" Size="12345" />' );

print Dumper( $tree );

给我看

$VAR1 = [
'xml',
[
{
'Size' => '12345',
'Id' => 'ca19cfd5',
'type' => 'test',
'elapsed' => '9',
'result' => '1 test 2 test 3'
 }
 ]
 ];

所以它完全可以解析我的字符串。但是我如何访问这些字段?类似“我的 $result = $tree...”

给定的 xml 字符串将始终具有如上所示的相同语法。只是内容不同。

Tnx 提前,恩奇都

4

2 回答 2

3

您正在寻找的属性在$tree->[1]->[0]

my $atts= $tree->[1]->[0];

然后

print "size: $atts->{Size}\n";

也就是说 XML::Parser 不是最容易使用的模块,它有点太低级了。XML::Twig 或 XML::LibXML 将更轻松地为您提供所需的内容。

于 2012-11-21T16:29:07.537 回答
1

您可以查看其他生成更简单结构的 XML 解析器

例如我的模块:

  • XML::快速
  • XML::哈希::LX
  • XML::Parser::Style::ETree
于 2012-11-22T00:18:47.700 回答