IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

probleme LWP avec XML::XPath


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 7
    Par défaut probleme LWP avec XML::XPath
    Bonjour,
    Je parse des fichiers XML avec XML::XPath.
    En temps normal pas de problemes j'utilise LWP::Simple

    my $link = "http://www.popo.com/popo.xml";
    my $document = get($link);
    my $xp = XML::XPath->new(xml => $document);

    Mais pour acceder a certain fichiers XML il y a une authentification donc :

    my $link = "http://www.popo.com/popo.xml";
    my $ua = LWP::UserAgent->new;
    $req = HTTP::Request->new(GET => $link);
    $req->authorization_basic('login', 'password');
    $document = $ua->request($req)->as_string;
    my $xp = XML::XPath->new(filename => $document);

    l'authentification se deroule bien mais le texte du fichier XML est renvoyé a l'écran et XML::XPath renvoie une erreur ligne 53 !!

    quelqu'un sait pourquoi ????
    Merci

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par defdef
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $document =  $ua->request($req)->as_string;
    my $xp = XML::XPath->new(filename => $document);
    l'authentification se deroule bien mais le texte du fichier XML est renvoyé a l'écran et XML::XPath renvoie une erreur ligne 53 !!

    quelqu'un sait pourquoi ????
    Merci
    Utilises les balises codes autour de ton script (bouton #) !!!!

    as_string() renvoie une représentation textuelle de la réponse HTTP, donc les entêtes sont inclus, tu ne le souhaites pas, ce que tu veux c'est le contenu de la réponse, le xml. Tu devrais donc utiliser content().
    Une fois que tu as ce contenu, il vaut mieux ne pas le passer en tant que "filename" (nom de fichier) à XML::XPATH ! Evidemment XML::XPATH ne risque pas d'arriver à ouvrir ce soi-disant "fichier" dont le nom commence par <xml....> .

    Au final ton programme devrait plutôt finir comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $resp =  $ua->request($req);
    die "The request did not succeed ", $resp->message, "\n" if not $resp->is_success;
    my $xp = XML::XPath->new(xml => $resp->content);
    --
    Jedaï

Discussions similaires

  1. probleme de ChildNodes avec XML
    Par progamer54 dans le forum Flash
    Réponses: 6
    Dernier message: 22/11/2006, 13h44
  2. Petit problème avec XML et WinDev
    Par MicaelFelix dans le forum WinDev
    Réponses: 1
    Dernier message: 18/09/2006, 16h26
  3. XML / Xpath -> une solution avec Builder?
    Par say dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/05/2005, 11h56
  4. [FLASH MX] Probleme avec XML
    Par celina5880 dans le forum Flash
    Réponses: 4
    Dernier message: 16/12/2004, 19h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo