A voir également:
- Besoin d'aide en DOM et PHP
- Easy php - Télécharger - Divers Web & Internet
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Bouton php - Forum PHP
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
11 réponses
pascal.barbier
Messages postés
33
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
7 décembre 2008
6
8 déc. 2007 à 17:01
8 déc. 2007 à 17:01
peux tu donner les exemples de lignes de code qui génèrent les warning ainsi que les messages d'erreur ?
rose77
Messages postés
6
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
8 décembre 2007
8 déc. 2007 à 17:28
8 déc. 2007 à 17:28
Merci d'avoir répondu les message d'erreur sont Warning: Invalid argument supplied for foreach() in C:\... à chaque tour des foreach
rose77
Messages postés
6
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
8 décembre 2007
8 déc. 2007 à 17:40
8 déc. 2007 à 17:40
en fait le programme est le suivant:
<?php
$fichier = "test.xml";
$racine=$dom->documentElement;
echo "L'element racine se nomme : ", $racine->nodeName;
$tab=$racine->childNodes;
//$nb=count($tab);
foreach($tab as $enfant){
echo $enfant->nodeName;
$tab1=$enfant->childNodes;
foreach($tab1 as $enfant1){
echo $enfant1->nodeName;
$tab2=$enfant1->childNodes;
foreach($tab2 as $enfant2){
echo $enfant2->nodeName;
$tab3=$enfant2->childNodes;
foreach($tab3 as $enfant3){
echo $enfant3->nodeName;
echo $enfant3->nodeValue;}}}}
?>
pour extraire les données du fichier xml suivant:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE continents SYSTEM "test.dtd">
<POSTE>
<PAC>
<COD type="gfj">75101</COD>
<DAT nom="date fin periode">20051031</DAT>
<GROUPE nom="col" type="coli">0</GROUPE>
<GROUPE nom="env" type="envel">4</GROUPE>
<GROUPE nom="chr" type="chrono">3</GROUPE>
<coli/>
<envel>
<envoi>
<date nom="dat">20051001</date>
<cp nom="cp">78900</cp>
<adre nom="adre">4 rue du tedo</adre>
<ville nom="ville">paris</ville>
</envoi>
<envoi>
<date nom="dat">20051010</date>
<cp nom="cp">15646</cp>
<adre nom="adre">4 av sdgsog</adre>
<ville nom="ville">ducro</ville>
</envoi>
<envoi>
<date nom="dat">20050801</date>
<cp nom="cp">15645</cp>
<adre nom="adre">8 rue de tarb</adre>
<ville nom="ville">tredo</ville>
</envoi>
<envoi>
<date nom="dat">20050601</date>
<cp nom="cp">78900</cp>
<adre nom="adre">8 bd faut</adre>
<ville nom="ville">paris</ville>
</envoi>
</envel>
<chrono>
<envoi>
<date nom="dat">20050701</date>
<cp nom="cp">78900</cp>
<adre nom="adre">6 bd jean</adre>
<ville nom="ville">reins</ville>
</envoi>
<envoi>
<date nom="dat">20050601</date>
<cp nom="cp">78900</cp>
<adre nom="adre">4 rue du tedo</adre>
<ville nom="ville">paris</ville>
</envoi>
<envoi>
<date nom="dat">20050517</date>
<cp nom="cp">54645</cp>
<adre nom="adre">19 bis rue franc</adre>
<ville nom="ville">brazil</ville>
</envoi>
</chrono>
</PAC>
</POSTE>
<?php
$fichier = "test.xml";
$racine=$dom->documentElement;
echo "L'element racine se nomme : ", $racine->nodeName;
$tab=$racine->childNodes;
//$nb=count($tab);
foreach($tab as $enfant){
echo $enfant->nodeName;
$tab1=$enfant->childNodes;
foreach($tab1 as $enfant1){
echo $enfant1->nodeName;
$tab2=$enfant1->childNodes;
foreach($tab2 as $enfant2){
echo $enfant2->nodeName;
$tab3=$enfant2->childNodes;
foreach($tab3 as $enfant3){
echo $enfant3->nodeName;
echo $enfant3->nodeValue;}}}}
?>
pour extraire les données du fichier xml suivant:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE continents SYSTEM "test.dtd">
<POSTE>
<PAC>
<COD type="gfj">75101</COD>
<DAT nom="date fin periode">20051031</DAT>
<GROUPE nom="col" type="coli">0</GROUPE>
<GROUPE nom="env" type="envel">4</GROUPE>
<GROUPE nom="chr" type="chrono">3</GROUPE>
<coli/>
<envel>
<envoi>
<date nom="dat">20051001</date>
<cp nom="cp">78900</cp>
<adre nom="adre">4 rue du tedo</adre>
<ville nom="ville">paris</ville>
</envoi>
<envoi>
<date nom="dat">20051010</date>
<cp nom="cp">15646</cp>
<adre nom="adre">4 av sdgsog</adre>
<ville nom="ville">ducro</ville>
</envoi>
<envoi>
<date nom="dat">20050801</date>
<cp nom="cp">15645</cp>
<adre nom="adre">8 rue de tarb</adre>
<ville nom="ville">tredo</ville>
</envoi>
<envoi>
<date nom="dat">20050601</date>
<cp nom="cp">78900</cp>
<adre nom="adre">8 bd faut</adre>
<ville nom="ville">paris</ville>
</envoi>
</envel>
<chrono>
<envoi>
<date nom="dat">20050701</date>
<cp nom="cp">78900</cp>
<adre nom="adre">6 bd jean</adre>
<ville nom="ville">reins</ville>
</envoi>
<envoi>
<date nom="dat">20050601</date>
<cp nom="cp">78900</cp>
<adre nom="adre">4 rue du tedo</adre>
<ville nom="ville">paris</ville>
</envoi>
<envoi>
<date nom="dat">20050517</date>
<cp nom="cp">54645</cp>
<adre nom="adre">19 bis rue franc</adre>
<ville nom="ville">brazil</ville>
</envoi>
</chrono>
</PAC>
</POSTE>
pascal.barbier
Messages postés
33
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
7 décembre 2008
6
8 déc. 2007 à 17:40
8 déc. 2007 à 17:40
ok maintenant on pourrait avoir un bout de code contenant ce foreach pour identifier l'erreur ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rose77
Messages postés
6
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
8 décembre 2007
8 déc. 2007 à 17:41
8 déc. 2007 à 17:41
Oui je viens de l'envoyer
pascal.barbier
Messages postés
33
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
7 décembre 2008
6
8 déc. 2007 à 17:46
8 déc. 2007 à 17:46
Oui j'ai vu
Apparament les tableaux de noeud retournés par child nodes sont invalides.
Je n'ai pas de plateforme php avec DOM sous la main pour tester mais je regarderais dès que possible
Apparament les tableaux de noeud retournés par child nodes sont invalides.
Je n'ai pas de plateforme php avec DOM sous la main pour tester mais je regarderais dès que possible
rose77
Messages postés
6
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
8 décembre 2007
8 déc. 2007 à 17:49
8 déc. 2007 à 17:49
ok je te remercie d'avance
pascal.barbier
Messages postés
33
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
7 décembre 2008
6
8 déc. 2007 à 18:04
8 déc. 2007 à 18:04
En relisant le texte de plus près je m'apperçois que l'objet $dom n'a pas été créé et le fichier n'a pas été chargé :
$dom=new DOMDocument;
$dom->load($fichier);
Selon la version de DOMXML il faudra peut être des arguments supplémentaires : voir la doc.
Le reste devrait fonctionner
$dom=new DOMDocument;
$dom->load($fichier);
Selon la version de DOMXML il faudra peut être des arguments supplémentaires : voir la doc.
Le reste devrait fonctionner
rose77
Messages postés
6
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
8 décembre 2007
8 déc. 2007 à 18:25
8 déc. 2007 à 18:25
excuse moi j'au coupé le script , j'avais créé le $dom avant:
$fichier = "test.xml";
$dom = new DOMDocument();
$dom->load($fichier);
et il m'affiche bien le bon résultat de la racine à la ligne: echo "L'element racine se nomme : ", $racine->nodeName;
$fichier = "test.xml";
$dom = new DOMDocument();
$dom->load($fichier);
et il m'affiche bien le bon résultat de la racine à la ligne: echo "L'element racine se nomme : ", $racine->nodeName;
rose77
Messages postés
6
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
8 décembre 2007
8 déc. 2007 à 18:38
8 déc. 2007 à 18:38
désolée mon temps de connexion est fini je me reconnecte demain en espérant que toi aussi. merci pour ton intervention