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

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] recuperation du fichier xml (et pas de l'élément xml)


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut [SimpleXML] recuperation du fichier xml (et pas de l'élément xml)
    Bonjour,

    J'utilise la bibliotheque curl php pour interroger un serveur distant et recuperer un xml comme resultat.

    en faisant un echo de la reponse je vois que je recupere bien les donnees mais je voudrai utiliser un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xmlDoc->load($reponse);
    pour charger le fichier et ensuite le transformer avec un xslt qui existe deja.

    comment puis-je recuperer ce fichier?

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    header("Content-type: text/xml");
     
    // initialisation des variables
    #
    $requete = '';
    #
    $param['ap'] = 'XMLTei'; // nom de l'application a interoger
    #
    $param['ln'] = 'fr'; // langue
    #
    $param['in'] = $_POST['in']; // phrase
    #
    // construction de la requete
    #
    foreach($param as $clef => $valeur) // pour chaque champ
    #
    {
    	#
    	#
    	$requete .= $clef . '=' . urlencode($valeur); // il faut bien formater les valeurs
    	#
    	$requete .= '&';
    	#
    }
    #
    // url d'accès à la passerelle
    #
    $url = "http://129.194.19.89/Parser";
    #
    // initialisation curl
    #
    $ch = curl_init();
    #
    // parametres
    #
    curl_setopt($ch, CURLOPT_URL, $url); // url
    #
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // retourne une variable
    #
    // au lieu de l'afficher directement
    #
    curl_setopt($ch, CURLOPT_POST, 1); // active la méthode POST
     
    curl_setopt($ch, CURLOPT_HEADER, 0);
    #
    curl_setopt($ch, CURLOPT_POSTFIELDS, $requete); // requete
     
     
    #
    // execute la connexion CURL
    #
    $reponse = curl_exec($ch);
    #
    // fermeture de la connexion
    #
    curl_close($ch);
    #
    // affichage de la réponse
    #
     
    echo $reponse;
     
    //transformation du xml avec la xsl correspondante (ne fonctionne pas!!)
    $xslDoc = new DOMDocument();
    $xslDoc->load("xslt/transformHTML.xsl");
     
    $xmlDoc = new DOMDocument();
    $xmlDoc->load($reponse);

    merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    La méthode load de DomDocument attend le nom d'un fichier à charger. A partir d'une chaîne, c'est sa méthode loadXML qu'il faut employer.

    allow_url_fopen n'est pas actif que vous passez par cURL ? Pourquoi soi-même encoder les données de $param alors que la fonction http_build_query pourrait le faire ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    Citation Envoyé par julp Voir le message
    La méthode load de DomDocument attend le nom d'un fichier à charger. A partir d'une chaîne, c'est sa méthode loadXML qu'il faut employer.

    allow_url_fopen n'est pas actif que vous passez par cURL ? Pourquoi soi-même encoder les données de $param alors que la fonction http_build_query pourrait le faire ?
    sur mon serveur de travail la fonction n'est pas active. merci pour l'encodage de la requete je vais rectifier.

    si j'ai bien compris je dois utiliser la methode loadXML ?

    MERCI

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    ça fonctionne voila la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $xmlDoc = new DOMDocument();
    $xmlDoc->loadXML($reponse);
    echo $xmlDoc->saveXML();
     
    //transformation du xml avec la xsl correspondante
    $xslDoc = new DOMDocument();
    $xslDoc->load("xslt/transformHTML.xsl");
     
    $proc = new XSLTProcessor();
    $proc->importStylesheet($xslDoc);
     
    echo $proc->transformToXML($xmlDoc);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SimpleXML] Charger un fichier XML comprenant des espaces de nom
    Par nadiaflamingenierie dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 16/01/2008, 10h30
  2. [SimpleXML] Traitement de fichier XML
    Par RasDataMan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/11/2007, 11h44
  3. [SimpleXML] Analyser un fichier XML avec PHP
    Par Someone86 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/08/2007, 09h43
  4. [SimpleXML] Lire un fichier XML
    Par ChriGoLioNaDor dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 07/02/2007, 16h48
  5. Recuperation du fichier xml
    Par Geulderack dans le forum XMLRAD
    Réponses: 10
    Dernier message: 28/02/2003, 11h06

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