Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/09/2011, 17h27   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 10
Points : 3
Points : 3
Par défaut Aide parser XML

Bonjour,

J'ai un petit soucis.
Je dois parser ce xml mais je n'arrive pas à le faire.

J'aimerais faire boucler au niveau de listePointRetraitAcheminement pour avoir tous les points relais et j'aimerais également avoir juste le premier listePointRetraitAcheminement sans avoir à boucler.

Si quelqu'un à une petite solution
wacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 17h38   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Hello

Utilise des XPath pour réccupérer tes données:
- http://jerome.developpez.com/xmlxsl/xpath/
- http://php.net/manual/en/class.domxpath.php

Mais vu que c'est du SOAP ton XML, pourquoi ne pas commencer par la classe SoapClient ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 17h56   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 10
Points : 3
Points : 3
Bon j'ai testé avec xpath

Code :
1
2
3
4
5
6
7
8
9
10
$xml = simplexml_load_file($adr);
 
$rs = $xml->xpath('/soap/soap/ns1/return/listePointRetraitAcheminement') ;
 
foreach ($rs as $adresse) {
 
 
print "Adresse : {$adresse->adresse1} <br />\n";
 
}
et avec
Code :
$rs = $xml->xpath('/soap:Envelope/soap:Body/ns1:findRDVPointRetraitAcheminementResponse/return/listePointRetraitAcheminement') ;
mais ca me donne aucun résultat :/
wacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 18h47   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
soap:Envelope n'est pas un nom de noeud, c'est un namespace suivi d'un nom. Pour pouvoir les lire avec XPath il faut utiliser SimpleXMLElement::registerXPathNamespace.

Pour addresser les noeuds dans le namespace global, pas besoin d'utilsier ça. Tu peux directement faire:
Code :
$rs = $xml->xpath('//findRDVPointRetraitAcheminementResponse/return/listePointRetraitAcheminement') ;
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 21h30   #5
Invité de passage
 
Inscription : octobre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 10
Points : 3
Points : 3
Merci de ta réponse ca ma beaucoup aidé.
wacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h46   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Pas de quoi. Si ton problème est résolu un clic sur le bouton est de mise.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h41.


 
 
 
 
Partenaires

Hébergement Web