Как использовать XML :: Simple, когда XML находится в объекте? - PullRequest
1 голос
/ 25 ноября 2010

У меня есть этот код

#!/usr/bin/perl -w

use strict;
use URI;
use LWP::UserAgent;
use Data::Dumper;
use XML::Simple;

my $DBVersion = '';

my $url = URI->new('https://example.com');

$url->query_form(
    'sql' => 'select email,firstname from account for xml auto',
    'DBVersion' => $DBVersion
    );

my $response = LWP::UserAgent->new->get($url);
die "Error: ", $response->status_line unless $response->is_success;

print $response->content;

А теперь я хотел бы использовать XML::Simple на $response->content.

С могу ли я видеть, что они используют

my $doc = $xs1->XMLin($file);

foreach my $key (keys (%{$doc->{species}})){
   print $doc->{species}->{$key}->{'common-name'} . ' (' . $key . ') ';
   print $doc->{species}->{$key}->{conservation}->final . "\n";
}

Но мои данные XML находятся не в файле, а в объекте, созданном модулем LWP.

Как я могу проанализировать эти данные с XML::Simple?

1 Ответ

2 голосов
/ 25 ноября 2010

XMLin() может принимать строку XML в качестве параметра:

use XML::Simple;
my $ref = XMLin($response->content);

Подробнее см. perldoc XML :: Simple .

...