2010-11-25 3 views
1

Ich habe diesen CodeWie verwendet man XML :: Simple, wenn XML in einem Objekt ist?

#!/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; 

Und nun möchte Ich mag XML::Simple auf $response->content verwenden.

From kann ich sehen, dass sie

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"; 
} 

Aber meine XML-Daten in nicht in einer Datei verwenden, aber in einem Objekt durch das LWP-Modul erstellt.

Wie kann ich diese Daten mit XML::Simple parsen?

Antwort

2

XMLin() kann eine Reihe von XML als Parameter akzeptieren:

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

Siehe perldoc XML::Simple für die Details.