2010-11-25 9 views
1

J'ai ce codeComment utiliser XML :: Simple lorsque XML est dans un objet?

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

Et maintenant, je voudrais utiliser XML::Simple sur $response->content.

From puis-je voir qu'ils utilisent

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

Mais mes données XML dans pas dans un fichier, mais dans un objet créé par le module LWP.

Comment puis-je analyser ces données avec XML::Simple?

Répondre

2

XMLin() peut accepter une chaîne de XML comme paramètre:

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

Voir perldoc XML::Simple pour les détails.