Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3176 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [XML] lire un fichier xml

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XML] lire un fichier xml

n°1423958
yvonc
Posté le 10-08-2006 à 18:35:58  profilanswer
 

Je travaille sous php 4,3.
 
Je souhaiterais effectuer la lecteur d'un fichier XML pour par la suite l'intégrer dans ma bd mysql comme je le souhaite.
 
Le problème c'est que je n'arrive pas à trouver de moyen pour parser corectement mon fichier
 
quand j'affiche la ou ce trouve mon parseur, on peut voir qu'il s'est arrêté au niveau du noeud et n'a pas voulu continuer plus loin.
voici mon code que j'ai réalisé pour le moment :
 

Code :
  1. $xmlConfig = domxml_open_file(dirname(__FILE__) . "/../helpers/nouvelles.xml" );
  2. $root = $xmlConfig->document_element();
  3. $child = $root->first_child();
  4. $xml = null;
  5. $xml1 = null;
  6. while ($child) {
  7. if ($child->node_type() != XML_TEXT_NODE) {
  8.  echo $child->tagname();
  9.  $xml .= $child->get_attribute("contenu" );
  10.  $xml1 .= $child->get_attribute("date1" );
  11. }
  12. $child = $child->next_sibling();
  13. }


 
Voici un bout du xml bidon que j'utilise comme il est simple à comprendre
 

Code :
  1. <?xml version="1.0"?>
  2. <nouvelles>
  3.     <nouvelle>
  4.         <contenu>toto</contenu>
  5.         <date1>10/10/2004</date1>
  6.     </nouvelle>
  7.     <nouvelle>
  8.         <contenu>Confirmant les tendances pessimistes, Monsieur et Madame X viennent de divorcer</contenu>
  9.         <date1>10/10/2005</date1>
  10.     </nouvelle> 
  11. </nouvelles>


 
Si quelqu'un pourrait m'aider j'ai rien trouvé d'intéressant sur le net et je galère pas mal
 
 :hello:  :hello:  :hello:

mood
Publicité
Posté le 10-08-2006 à 18:35:58  profilanswer
 

n°1423965
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-08-2006 à 18:53:39  profilanswer
 

pas moyen de passer sous php5? simpleXml et le "vrai" DOM te simplifierait la vie!!!
 
Mais sinon dans ton code tu as une merdouille, tu fais des getAttribute pour récuperer des childNodes de ton noeud contenu!
Un attribut c'est ça:

Code :
  1. <nouvelle contenu="pouet"/>


n°1424121
yvonc
Posté le 11-08-2006 à 09:10:13  profilanswer
 

j'avais pu voir sur le net que c'était tout simple de faire ca en php5, mais la boite ou je suis ne veule pas changer de version sinon ca pèterai toutes leurs appli.
 
d'accord je vais réfléchir à ce que tu m'as dit, je te tiens au courant
 
 :hello:  :hello:

n°1424249
yvonc
Posté le 11-08-2006 à 11:58:54  profilanswer
 

salut  
 
j'ai réussi à dompter le domxml  :D  
 
voici mon code :

Code :
  1. if (!$dom = domxml_open_file(dirname(__FILE__) . "/../helpers/nouvelles.xml" )) {
  2.   echo "Error while parsing the document\n";
  3.   exit;
  4. }
  5. $root = $dom->document_element();
  6. $node_person = $root->get_elements_by_tagname("person" );
  7. $node_card = $root->get_elements_by_tagname("card" );
  8. $node_num = $root->get_elements_by_tagname("num" );
  9. $node_etat = $root->get_elements_by_tagname("etat" );
  10. $active = null;
  11. $i =0;
  12. $incre = 0;
  13. foreach ($node_person as $node=>$valeur) {
  14. echo "login"."     ".$valeur->get_attribute("login" )."   "."</br>";
  15. echo "cardId"."     ".$node_card[$node]->get_attribute("id" )."   "."</br>";
  16. for ($i=$incre;$i<count($node_num);$i++){
  17.  echo $node_num[$i]->get_attribute("id" )."   "."</br>";
  18.  echo $node_num[$i]->get_content()."   "."</br>";
  19.  if ($i == $incre+51 ){
  20.   break;
  21.  }
  22. echo "INSERT INTO `code` (`card_id` , `key_number` , `code` ) ('".$node_card[$node]->get_attribute("id" )."', '".$node_num[$i]->get_attribute("id" )."', '".$node_num[$i]->get_content()."')"."</br>";
  23. }
  24. $incre=$i+1;
  25. if ("oui" == $node_etat[$node]->get_attribute("used" )){
  26.  $active = 1;
  27. } else {
  28.  $active =0;
  29. }
  30. echo "INSERT INTO `card` (  `card_id` , `active` , `user_name` , `etat` )VALUES ('".$node_card[$node]->get_attribute("id" )."', '".$active."', '".$valeur->get_attribute("login" )."', '0')"."</br>";
  31. }
  32. echo "---<br />";


 
Je travaillai au début sur un fichier xml simple pour ne pas me tracasser avec, le code qui est là correspond à mon nouveau fichier xml de structure

Code :
  1. <Card>
  2. <person login="toto">
  3.  <card id="123">
  4.   <num id="1" >125</num>
  5.   <etat used="oui">52</etat>
  6.  </card>
  7. </person>
  8. </Card>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [XML] lire un fichier xml

 

Sujets relatifs
[RESOLU AVEC HONTE] Pb avec un upload de fichier un peu étrange :)Programme pour lire une matrice triangulaire inférieure à partir
[Résolu] Lire les 10 dernières lignes d'un fichierLire un fichier XML sans sa DTD
Lire un fichier XMLlire et ecrire dans un fichier xml en c++ !!
appli Java pour Palm peut-elle lire un fichier XML ?appli Java pour Palm peut-elle lire un fichier XML ?
[vc++] Lire un fichier XML[XML & MFC] écrire et lire un fichier XML, quelles classes MFC ?
Plus de sujets relatifs à : [XML] lire un fichier xml


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR