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

  FORUM HardWare.fr
  Programmation
  PHP

  DOM, extraction d'information dans un fichier XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

DOM, extraction d'information dans un fichier XML

n°1331181
mexx20
Posté le 23-03-2006 à 16:30:30  profilanswer
 

Bonjour,
 
J'utilise php 5.1.2; d'aprés le site PHP.net les fonctions comme domxml_open_file($file) ne sont plus incluses dans la version 5 (effectivement ca ne compile pas ...).  
Si j'ai bien compris le module DOM XML est remplacé par DOM tout court et il faut utiliser des fonctions orientées objet et ne plus utiliser les fonctions procédurales.  
 
J'ai essayé comme ceci :
 
$dom = new DOMDocument(); // avant je faisais DomDocument() ...
$dom->load($filename); // egal à $dom->loadXML(file($filename))  
 
$params = $dom->getElementsByTagName("*" );
 
foreach ($params as $param) {
  echo $param -> getAttribute('attr').'<br/>';
}
 
mais il ne rentre pas dans la boucle ... Normalement le string "*" devrait me permettre d'obtenir une liste de tous les noeuds de mon fichier.
La fonction getElementsByTagName me renvoit un objet qui devrait etre une liste de DOMNode (comment puis-je le vérifier?)
Toutes les suggestions sont les bienvenues.

mood
Publicité
Posté le 23-03-2006 à 16:30:30  profilanswer
 

n°1331210
mexx20
Posté le 23-03-2006 à 17:00:23  profilanswer
 

Je viens d'essayer avec simplexml mais je n'y arrive toujours pas. PHP c'est vraiment un milliard de module pour faire la meme chose et ça ne marche pas.
 
$xml = simplexml_load_file($address);
 
foreach ($xml->user as $u) {
   echo $u->nom, '<br />';
}

n°1331231
anapajari
s/travail/glanding on hfr/gs;
Posté le 23-03-2006 à 17:25:53  profilanswer
 

ton exemple avec dom est correct ( remarque c'est aussi celui de la doc :o ), par exemple:

Code :
  1. <?php
  2. $xml =<<<EOT
  3. <?xml version="1.0"?>
  4. <config>
  5.   <section id="section1">
  6.    <param name="param1">value1</param>
  7.    <param name="param2">value2</param>
  8.   </section>
  9.   <section id="section2">
  10.    <param name="param3">value3</param>
  11.   </section>
  12. </config>
  13. EOT;
  14. $dom = new DOMDocument("1.0" );
  15. $dom->preserveWhiteSpace = FALSE;
  16. $dom->loadXML($xml);
  17. $params = $dom->getElementsByTagName('param');
  18. foreach ($params as $param) {
  19.   echo $param->getAttribute('name')."\n";
  20. }
  21. ?>


produit bien

Code :
  1. param1
  2. param2
  3. param3


Es tu sur de ton flux xml?
 
Par ailleurs getElementsByTagName retourne une DOMNodeList.
Tu peux avoir sa taille grace à la propriété length:

Code :
  1. echo $params->length


Et si tu souhaites vraiment avoir son type la fonction gettype est la pour ça!


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

  DOM, extraction d'information dans un fichier XML

 

Sujets relatifs
Ouverture d'un fichier Excel avec un XML et lancement d'une macroExtraction/Insertion de donnée XML dans une base de donnée de Oracle
Comment ecrire dans un fichier texte sous builderalimenter la base sql avec un fichier csv !
Rechercher dans un fichier texteProblème de déploiement d'un fichier cab
Méthode pour écrire dans un fichier ofstream[Oracle 9i]Export résultat de requête SQL vers fichier XML?
Plus de sujets relatifs à : DOM, extraction d'information dans un fichier XML


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