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::パーサー::スタイル::ETree
于 2012-11-22T00:18:47.700 に答える