Toujours au sujet de Dom pour xml!!

Fermé
rose77 -  
 rose77 -
Bonjour, mon problème persiste lors d'extraction de données xml en Dom pour les insérer dans une base oracle ou mysql quelqu'un peut m'aider?!
A voir également:

2 réponses

rose77
 
Merci pour ton intervention. Voilà j'ai un doc xml dont je dois extraire des données avec DOM pour les inserer dans unebase de donnée. le doc xml est le 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>

et le doc php:
<?php

//$ora=oci_connect("localhost","3p","");

$fichier = "test.xml";
$dom = new DOMDocument();
$dom->load($fichier);
// test pour voir si le document est conforme à sa DTD
//if(!$dom->Validate( "test.xml" )){
// echo "Validation DTD n'est pas OK\n";
// print_r($error);
//} else {
// echo "Validation OK\n";
$racine=$dom->documentElement;
echo "L'element racine se nomme : ", $racine->nodeName;
//$tab=$dom->getElementsByTagName('PAC');
//echo $enfant->nodeName;
$tab=$racine->childNodes;
//$nb=count($tab);
foreach($tab as $enfant){
$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;}}}}

?>

Lorsque j'exécute le programme il y a un warning à chaque tour du foreach. effectivement le premier foreach renvoie une seule ligne mais je dois prévoir le cas où il y aurait plusieurs enfants.
1
phil_232 Messages postés 286 Statut Membre 33
 
quel pb ?
0