[Cascavel-pm] XML::Parser Tree

Gabriel Vieira gabriel.vieira em gmail.com
Quinta Junho 28 13:31:52 PDT 2007


Opa Daniel!

Faça uso do Data::Dumper :)

------------------------------8<------------------------------
use XML::Parser;
use Data::Dumper;
my $parser=new XML::Parser;
my $p=new XML::Parser(Style => 'Tree');
my $xml=$p->parse('<inquiry>'
                                        .'<city>2</city>'
                                        .'<region>CENTER</region>'
                                        .'<childages>'
                                            .'<childage>2</childage>'
                                            .'<childage>11</childage>'
                                        .'</childages>'
                                      .'</inquiry>');


print Dumper($xml);
------------------------------>8------------------------------

A saída:
------------------------------8<------------------------------
$VAR1 = [
          'inquiry',
          [
            {},
            'city',
            [
              {},
              0,
              '2'
            ],
            'region',
            [
              {},
              0,
              'CENTER'
            ],
            'childages',
            [
              {},
              'childage',
              [
                {},
                0,
                '2'
              ],
              'childage',
              [
                {},
                0,
                '11'
              ]
            ]
          ]
        ];
------------------------------>8------------------------------

Abraços,

On 6/28/07, Daniel (r) Antunes <danielrantunes em yahoo.com.br> wrote:
>
>     Olá amigos da lista,
>     Estou apanhando com uma bobeirinha e acredito que os amigos possam me
> ajudar.
>     Já fiz parsers usando Handlers para grandes documentos e conheço bem o
> funcionamento. Agora estou tentando criar um parser usando a opção "Tree",
> nunca tinha utilizado este método e apesar da simplicidade exposta na "man
> page" estou apanhando.
>     Segue um script que fiz para testar o funcionamento :
>
> #!/usr/bin/perl
> use XML::Parser;
> my $parser=new XML::Parser;
> my $p=new XML::Parser(Style => 'Tree');
> my $xml=$p->parse('<inquiry>'
>                                         .'<city>2</city>'
>                                         .'<region>CENTER</region>'
>                                         .'<childages>'
>                                             .'<childage>2</childage>'
>                                             .'<childage>11</childage>'
>                                         .'</childages>'
>                                       .'</inquiry>');
> print " 1º\t",$xml,"\n\n";
> print " 2º\t",$$xml[0],"\n\n";
> print " 3º\t",$$xml[1],"\n\n";
> print " 4º\t",$$xml[1][1],"\n\n";
> print " 5º\t",$$xml[1][2],"\n\n";
> print " 6º\t",$$xml[1][3],"\n\n";
> print " 7º\t",$$xml[1][4],"\n\n";
> print " 8º\t",$$xml[1][5],"\n\n";
> print " 9º\t",$$xml[1][6],"\n\n";
>
>     O resultado no console é o seguinte :
>
> 1º     ARRAY(0x815a0e4)
>
>  2º     inquiry
>
>  3º     ARRAY(0x815a180)
>
>  4º     city
>
>  5º     ARRAY(0x8220f90)
>
>  6º     region
>
>  7º     ARRAY(0x8220f30)
>
>  8º     childages
>
>  9º     ARRAY(0x82130f4)
>
> 10º
>
> 11º
>
> 12º
>
>     Minha dúvida é : Como navegar pelos elementos. :(
>     Muitíssimo obrigado galera.
>     Abraço.
>
>  Daniel (r) Antunes
> profissional de informática
> msn daniel.legend em terra.com.br
> mobile + 55 11 8965 2999
> gnu/linux user #238553
>
>
>  ________________________________
> Novo Yahoo! Cadê? - Experimente uma nova busca.
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


-- 
Gabriel Vieira


Mais detalhes sobre a lista de discussão Cascavel-pm