par
debutant57 » 09 juin 2008, 11:12
Bonjour j'ai trouvé ce code pour recupere les donnée d'un fichier xml, il fonctionne parfaitement
Suelement j'ai un petit souci etant donnée que ma structure de fichier est différente ( elle ne peut pas etre modifié car je la recois comme cela )
<?php
// Partons d'un exemple simple et trés classique
// Imaginons 1 fichier XML avec 2 éléments, 'id' et 'prenom'
// L'item principal est 'profil'
?>
<? xml version="1.0" encoding="ISO-8859-1" ?>
- <XML_EXEMPLE>
- <profil>
<id>200</id>
<prenom>Koogi</prenom>
</profil>
</XML_EXEMPLE>
<?
// FONCTION qui va lire le fichier XML et le placer dans un tableau
// Cette fonction sert de parseur
function lit_xml($fichier,$item,$champs) {
// on lit le fichier
if($chaine = @implode("",@file($fichier))) {
// on explode sur <item>
// Dans l'exemple il s'agit de 'profil'
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque <item> donc tous les profils
for($i=1;$i<sizeof($tmp)-1;$i+=2)
// on lit les champs demandés <champ> donc il s'agit de 'id' et 'prenom'
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on ajoute l'élément au tableau
$tmp3[$i-1][] = @$tmp2[1];
}
// et on retourne le tableau dans la fonction
return $tmp3;
}
}
// Lecture du FLUX XML sur le serveur
$xml = lit_xml("http://www.site.com/flux.xml","profil",array("id","prenom"));
// Une petite boucle suffit pour retrouver les élément du tableau
// retourné dans la fonction lit_xml()
foreach($xml as $row) {
echo $row[0];
// affiche 200
echo $row[1];
// affiche Koogi
}
// Et voilà ;)
?>
voici la structure que je recois
<?xml version="1.0" encoding="utf-8"?>
<markers>
<marker lat="48.66194284607008" lng="5.20751953125" type="Champ" nom="departement" contact="
[email protected]" />
</markers>
je ne suis pas specialiste de la recuperation de donnée, comment dois je modifier mon code pour qu'il recupère les donnée a partir de ma structure ?
merci d'avance
Bonjour j'ai trouvé ce code pour recupere les donnée d'un fichier xml, il fonctionne parfaitement
Suelement j'ai un petit souci etant donnée que ma structure de fichier est différente ( elle ne peut pas etre modifié car je la recois comme cela )
[php]<?php
// Partons d'un exemple simple et trés classique
// Imaginons 1 fichier XML avec 2 éléments, 'id' et 'prenom'
// L'item principal est 'profil'
?>
<? xml version="1.0" encoding="ISO-8859-1" ?>
- <XML_EXEMPLE>
- <profil>
<id>200</id>
<prenom>Koogi</prenom>
</profil>
</XML_EXEMPLE>
<?
// FONCTION qui va lire le fichier XML et le placer dans un tableau
// Cette fonction sert de parseur
function lit_xml($fichier,$item,$champs) {
// on lit le fichier
if($chaine = @implode("",@file($fichier))) {
// on explode sur <item>
// Dans l'exemple il s'agit de 'profil'
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque <item> donc tous les profils
for($i=1;$i<sizeof($tmp)-1;$i+=2)
// on lit les champs demandés <champ> donc il s'agit de 'id' et 'prenom'
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on ajoute l'élément au tableau
$tmp3[$i-1][] = @$tmp2[1];
}
// et on retourne le tableau dans la fonction
return $tmp3;
}
}
// Lecture du FLUX XML sur le serveur
$xml = lit_xml("http://www.site.com/flux.xml","profil",array("id","prenom"));
// Une petite boucle suffit pour retrouver les élément du tableau
// retourné dans la fonction lit_xml()
foreach($xml as $row) {
echo $row[0];
// affiche 200
echo $row[1];
// affiche Koogi
}
// Et voilà ;)
?> [/php]
voici la structure que je recois
<?xml version="1.0" encoding="utf-8"?>
<markers>
<marker lat="48.66194284607008" lng="5.20751953125" type="Champ" nom="departement" contact="
[email protected]" />
</markers>
je ne suis pas specialiste de la recuperation de donnée, comment dois je modifier mon code pour qu'il recupère les donnée a partir de ma structure ?
merci d'avance