Récupération de données dans un fichier XML.
Résolu/Fermé
sigouil
Messages postés
11
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
7 avril 2010
-
6 avril 2010 à 18:48
sigouil Messages postés 11 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 7 avril 2010 - 7 avril 2010 à 17:23
sigouil Messages postés 11 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 7 avril 2010 - 7 avril 2010 à 17:23
A voir également:
- Récupération de données dans un fichier XML.
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
6 réponses
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
6 avril 2010 à 21:32
6 avril 2010 à 21:32
Commence déjà par mettre des balises en minuscules, ainsi que le nom de ton fichier. Et utilises plutôt utf-8 comme encodage.
Pour ta boucle :
Pour ta boucle :
$clients = document->getElementsByTagName('clients')->item(0); <CODE_CLIENT>002</CODE_CLIENT> <TYPE_OFFRE>2</TYPE_OFFRE> <CODE_SOCIETE>0001</CODE_SOCIETE> <CODE_SITE>02</CODE_SITE> <NO_DOSSIER>00002</NO_DOSSIER> foreach($clients->getElementsByTagName('client') as $client) { $code_client = $client->getElementsByTagName('code_client')->firstChild->nodeValue; $type_offre = $client->getElementsByTagName('type_offre')->firstChild->nodeValue; $code_societe = $client->getElementsByTagName('code_societe')->firstChild->nodeValue; $code_site = $client->getElementsByTagName('code_site')->firstChild->nodeValue; $no_dossier = $client->getElementsByTagName('no_dossier')->firstChild->nodeValue; // ta requête SQL }
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
7 avril 2010 à 17:14
7 avril 2010 à 17:14
Après les getElementsByTagName, il faut ajouter "->item(0)".
$code_client = $client->getElementsByTagName('CODE_CLIENT')->item(0)->nodeValue;Si ça ne fonctionne toujours pas :
$code_client = $client->getElementsByTagName('CODE_CLIENT')->item(0)->firstChild->nodeValue;
sigouil
Messages postés
11
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
7 avril 2010
2
7 avril 2010 à 17:23
7 avril 2010 à 17:23
MERCI !
C'est bon, ca marche.
J'ai rarement perdu autant de temps à trouver une solution.
Un grand merci à toi avion-f16
C'est bon, ca marche.
J'ai rarement perdu autant de temps à trouver une solution.
Un grand merci à toi avion-f16
sigouil
Messages postés
11
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
7 avril 2010
2
7 avril 2010 à 12:50
7 avril 2010 à 12:50
Merci de ta réponse avion-f16, mais ça me renvoi un message d'erreur :
La ligne 27 :
$code_client = $client->getElementsByTagName('code_client')->firstChild->nodeValue;
(j'ai commenté les autres lignes du foreach pour limiter les messages d'erreur)
en retirant ->firstChild->nodeValue je n'ai pas ces message, mais '$client' est vide.
Pour le fichier XML, je n'ai aucun pouvoir dessus. il se trouve sur un site externe.
Notice: Undefined property: DOMNodeList::$firstChild in C:\wamp\www\Projet\index.php on line 27 Notice: Trying to get property of non-object in C:\wamp\www\Projet\index.php on line 27
La ligne 27 :
$code_client = $client->getElementsByTagName('code_client')->firstChild->nodeValue;
(j'ai commenté les autres lignes du foreach pour limiter les messages d'erreur)
en retirant ->firstChild->nodeValue je n'ai pas ces message, mais '$client' est vide.
Pour le fichier XML, je n'ai aucun pouvoir dessus. il se trouve sur un site externe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
avion-f16
Messages postés
19244
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
17 avril 2024
4 496
7 avril 2010 à 14:11
7 avril 2010 à 14:11
Retire seulement "->firstChild", mais laissse "->nodeValue".
Avec DOM en JS on est obligé de mettre firstChild pour récupérer la valeur du noeud, mais pas en PHP ...
Retire aussi ce gros bloc :
Avec DOM en JS on est obligé de mettre firstChild pour récupérer la valeur du noeud, mais pas en PHP ...
Retire aussi ce gros bloc :
<CODE_CLIENT>002</CODE_CLIENT> <TYPE_OFFRE>2</TYPE_OFFRE> <CODE_SOCIETE>0001</CODE_SOCIETE> <CODE_SITE>02</CODE_SITE> <NO_DOSSIER>00002</NO_DOSSIER>C'était pour ne pas avoir à monter/descendre quand je codais le script ;)
sigouil
Messages postés
11
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
7 avril 2010
2
7 avril 2010 à 16:52
7 avril 2010 à 16:52
J'avais déjà testé comme ca, mais cela ne change presque rien, si ce n'est que je n'ai qu'une erreur par itération.
Erreur :
Notice: Undefined property: DOMNodeList::$nodeValue in C:\wamp\www\Projet\index.php on line 26
avec en ligne 26 :
$code_client = $client->getElementsByTagName('CODE_CLIENT')->nodeValue;
Je pense que je vais me tourner vers simpleXML. :-(
Erreur :
Notice: Undefined property: DOMNodeList::$nodeValue in C:\wamp\www\Projet\index.php on line 26
avec en ligne 26 :
$code_client = $client->getElementsByTagName('CODE_CLIENT')->nodeValue;
Je pense que je vais me tourner vers simpleXML. :-(