Fichier XML et php
Résolu/Fermé
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
-
25 mars 2013 à 10:21
xyeuh Messages postés 54 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 7 juillet 2013 - 28 mars 2013 à 08:18
xyeuh Messages postés 54 Date d'inscription dimanche 4 novembre 2012 Statut Membre Dernière intervention 7 juillet 2013 - 28 mars 2013 à 08:18
A voir également:
- Fichier XML et php
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
- Ouvrir fichier .bin - Guide
8 réponses
Utilisateur anonyme
25 mars 2013 à 11:04
25 mars 2013 à 11:04
Salut,
Tu peux peut être trouver ton bonheur là :
https://forums.commentcamarche.net/forum/affich-12613748-affiche-contenu-fichier-xml-en-php
Tu peux peut être trouver ton bonheur là :
https://forums.commentcamarche.net/forum/affich-12613748-affiche-contenu-fichier-xml-en-php
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
25 mars 2013 à 11:06
25 mars 2013 à 11:06
Merci, de ton aide mais j'ai déja regarder ce topic sans succès.
Cordialement,
Xyeuh
Cordialement,
Xyeuh
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
25 mars 2013 à 11:21
25 mars 2013 à 11:21
Non aucun, le seul truc c'est que mon print_r m'affiche:
DOMDocument Object ( )
c'est tous ce que j'ai.
DOMDocument Object ( )
c'est tous ce que j'ai.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
25 mars 2013 à 11:54
25 mars 2013 à 11:54
Si tu fais un :
au niveau du print_r tu récupère pas les valeurs?
echo $dom->textContent;
au niveau du print_r tu récupère pas les valeurs?
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
25 mars 2013 à 11:59
25 mars 2013 à 11:59
Non il ne m'affiche rien de plus.
Utilisateur anonyme
25 mars 2013 à 12:03
25 mars 2013 à 12:03
C'est peut être bête mais vérifie ton chemin avec un file_exists("./log_import_aut/log.xml") parce que ça marche chez moi !
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
25 mars 2013 à 13:07
25 mars 2013 à 13:07
Avec un file_exists il me dit que c'est bon.
Giorgiolino
Messages postés
253
Date d'inscription
vendredi 15 mai 2009
Statut
Contributeur
Dernière intervention
2 mars 2015
52
25 mars 2013 à 15:38
25 mars 2013 à 15:38
@xyeuh,
ton problème vient de l'utilisation de la méthode validate() alors que tu n'as pas défini de DTD . En gros cela signifie que tu demandes la validation de ton document mais sans dire vis-à-vis de quelles règles il faut le faire.
De surcroît tu appelles la méthode avec un '@' (@$dom->validate()), ce qui a pour effet de passer les erreurs sous silence. Autrement, avec un niveau de log approprié, tu aurais pu voir le message suivant dans les logs php :
PHP Warning: DOMDocument::validate(): no DTD found! ...
Etant donné ton besoin apparent, je te conseille d'utiliser la librairie simplexml qui sera plus intuitive pour ce que tu essayes de faire --> https://www.php.net/manual/fr/function.simplexml-load-file.php
ton problème vient de l'utilisation de la méthode validate() alors que tu n'as pas défini de DTD . En gros cela signifie que tu demandes la validation de ton document mais sans dire vis-à-vis de quelles règles il faut le faire.
De surcroît tu appelles la méthode avec un '@' (@$dom->validate()), ce qui a pour effet de passer les erreurs sous silence. Autrement, avec un niveau de log approprié, tu aurais pu voir le message suivant dans les logs php :
PHP Warning: DOMDocument::validate(): no DTD found! ...
Etant donné ton besoin apparent, je te conseille d'utiliser la librairie simplexml qui sera plus intuitive pour ce que tu essayes de faire --> https://www.php.net/manual/fr/function.simplexml-load-file.php
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
25 mars 2013 à 19:16
25 mars 2013 à 19:16
Merci de votre réponse je te redit quoi demain.
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
26 mars 2013 à 08:19
26 mars 2013 à 08:19
Bonjour,
j'ai donc utilisé simplexml et donc modifié mon script,
mais je n'arrive toujours pas afficher les données
Script php :
$fichierxml = simplexml_load_file('./log_import_aut/log.xml');
print_r ($fichierxml);
foreach($fichierxml->gare as $gare)
{
//echo $gare->semaine;
foreach($gare->train as $train)
{
echo $train;
}
}
XML
<log>
<gare Code="17192">
<semaine jour="0">
<train>840800</train>
</semaine>
<semaine jour="0">
<train>2778</train>
</semaine>
<semaine jour="1">
<train>840502</train>
</semaine>
<semaine jour="0">
<train>840600</train>
</semaine>
<semaine jour="1">
<train>5420</train>
</semaine>
<semaine jour="0">
<train>5401</train>
</semaine>
<semaine jour="1">
<train>840501</train>
</semaine>
<semaine jour="1">
<train>840504</train>
</semaine>
<semaine jour="1">
<train>5486</train>
</semaine>
<semaine jour="1">
<train>840601</train>
</semaine>
</gare>
</log>
Merci pour vos précédente réponse.
cordialement,
xyeuh.
j'ai donc utilisé simplexml et donc modifié mon script,
mais je n'arrive toujours pas afficher les données
Script php :
$fichierxml = simplexml_load_file('./log_import_aut/log.xml');
print_r ($fichierxml);
foreach($fichierxml->gare as $gare)
{
//echo $gare->semaine;
foreach($gare->train as $train)
{
echo $train;
}
}
XML
<log>
<gare Code="17192">
<semaine jour="0">
<train>840800</train>
</semaine>
<semaine jour="0">
<train>2778</train>
</semaine>
<semaine jour="1">
<train>840502</train>
</semaine>
<semaine jour="0">
<train>840600</train>
</semaine>
<semaine jour="1">
<train>5420</train>
</semaine>
<semaine jour="0">
<train>5401</train>
</semaine>
<semaine jour="1">
<train>840501</train>
</semaine>
<semaine jour="1">
<train>840504</train>
</semaine>
<semaine jour="1">
<train>5486</train>
</semaine>
<semaine jour="1">
<train>840601</train>
</semaine>
</gare>
</log>
Merci pour vos précédente réponse.
cordialement,
xyeuh.
Giorgiolino
Messages postés
253
Date d'inscription
vendredi 15 mai 2009
Statut
Contributeur
Dernière intervention
2 mars 2015
52
27 mars 2013 à 14:20
27 mars 2013 à 14:20
@xyeuh:
Tu ne traverses pas correctement ton fixhier xml.
Ton xml a la structure suivante :
log (noeud racine) > gare > semaine > train
Autrement un noeud "log" contient un (ou plusieurs) noeuds "gare".
Autrement un noeud "gare" contient un (ou plusieurs) noeuds "semaine".
Ainsi de suite.
Du coup quand tu fais
Pour afficher des résultat, tu devrais plutôt faire quelque chose de la forme
J'ai fait une démo que tu peux voir par ici --> https://ideone.com/m1nqhe
Tu ne traverses pas correctement ton fixhier xml.
Ton xml a la structure suivante :
log (noeud racine) > gare > semaine > train
Autrement un noeud "log" contient un (ou plusieurs) noeuds "gare".
Autrement un noeud "gare" contient un (ou plusieurs) noeuds "semaine".
Ainsi de suite.
Du coup quand tu fais
foreach($gare->train as $train)ça ne peut pas te renvoyer de résultat puisque que dans un noeud "gare" on a d'abord des noeuds "semaine" et non pas "train".
Pour afficher des résultat, tu devrais plutôt faire quelque chose de la forme
foreach($fichierxml->gare as $gare) { foreach($gare->semaine as $semaine) { foreach($semaine->train as $train) { echo $train; } } }
J'ai fait une démo que tu peux voir par ici --> https://ideone.com/m1nqhe
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
27 mars 2013 à 17:43
27 mars 2013 à 17:43
Merci a toi,
j'essaye sa demain et je te redit ce qu'il en est.
j'essaye sa demain et je te redit ce qu'il en est.
xyeuh
Messages postés
54
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
7 juillet 2013
28 mars 2013 à 08:18
28 mars 2013 à 08:18
Merci de ton aide Giorgiolino tous me parer clair et cela fonctionne très bien.
Encore merci a tous
Je met donc mon topic en résolu.
Encore merci a tous
Je met donc mon topic en résolu.