Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 242 fois - Téléchargée 18 fois
<? $fichier = "Liste.xml"; $tab_immo = array(array()); $i = -1; read_xml($fichier); function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs) { global $derniereBaliseRencontree; $derniereBaliseRencontree = $nomBalise; } function fonctionBaliseFermante($parseur, $nomBalise) { global $derniereBaliseRencontree; $derniereBaliseRencontree = ""; } function search_occurence($parseur, $texte) { global $derniereBaliseRencontree; global $tab_immo; global $i; $texte = utf8_decode($texte); if ($derniereBaliseRencontree == "AFF_ID") $i++; $tab_immo[$i][$derniereBaliseRencontree] .= $texte; } function read_xml($fichier) { global $tab_immo; $parseurXML = xml_parser_create(); xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante" , "fonctionBaliseFermante"); xml_set_character_data_handler($parseurXML, "search_occurence"); $fp = fopen($fichier, "r"); if (!$fp) die("Vous n'avez pas uploader de fichier XML"); while ( $ligneXML = fgets($fp, 1024)) { xml_parse($parseurXML, $ligneXML, feof($fp)) or die("Erreur XML"); } xml_parser_free($parseurXML); fclose($fp); //unlink($fichier); //foreach($tab_immo[0] as $value) //echo $value . "<br>"; } ?>
13 août 2008 à 15:09
Mais je vais lire avec plaisir le man de SimpleXML, merci à vous :)
13 août 2008 à 10:59
13 août 2008 à 09:41
Sinon y'a un truc encore beaucoup plus simple, c'est l'extension simpleXML.
http://fr2.php.net4/manual/fr/book.simplexml.php
"L'extension SimpleXML fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux."
Les exemples qui expliquent comment c'est ultra simple d'utilisation sont là http://fr2.php.net/manual/fr/simplexml.examples.php
12 août 2008 à 10:05
Personnellement, au bureau je me suis créé une classe PHP me permettant de me faciliter la lecture de fichiers XML. Pour cela, j'utilise XPath qui est un langage permettant de naviguer dans un fichier XML. En retour, je reçois un tableau associatif qui me représente le noeud (ainsi que tous ses fils) sur lequel je me suis arrêté. Ce qui donne par exemple :
<?php
$o = new XMLFinder('mon_fichier.xml');
// Je recherche tous les noeuds <root><nodeA><nodeAB prenom="toto">
// Je récupère un tableau associatif avec les attributs et contenus texte de chaque noeud
$a = $o->xpath('/root/nodeA/nodeAB[@prenom="toto"]');
// Je ne veux que le contenu d'un noeud
$a = $o->xpath('/root/nodeA/nodeAB[@prenom="toto"]', XMLFinder::CONTENT);
// Je ne veux que les attributs d'un noeud
$a = $o->xpath('/root/nodeA/nodeAB[@prenom="toto"]', XMLFinder::ATTRIBUTES);
?>
Globalement ça ressemble à ça. Ca me permet de gagner beaucoup de temps et de la flexibilité :)
++
12 août 2008 à 09:42
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.