Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2008, 12h17   #1
Futur Membre du Club
 
Avatar de Hightuxdotnet
 
Inscription : mai 2008
Messages : 73
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 73
Points : 18
Points : 18
Par défaut SimpleXML, besoin d'aide sur son utilisation

Bonjour à tous,

Je travail actuellement sur un script ou j'utilise simpleXML pour la première fois.

J'ai écrit un bout de code qui me permet de matérialiser une table de ma base de donnée en XML et voici le resultat:

Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<infos>
<pseudo>nico</pseudo>
<age>23</age>
<departement>78</departement>
<ville>Marly le roi</ville>
<mail>foo2@foo.fr</mail>
<pseudo>foo</pseudo>
<age>25</age>
<departement>75018</departement>
<ville>Paris</ville>
<mail>foo@foo.fr</mail>
<pseudo>fool</pseudo>
<age>45</age>
<departement>78160</departement>
<ville>Marly le roi</ville>
<mail>fool@foo.fr</mail>
</infos>

Je charge ensuite ce document situé dans un fichier externe dans mon script PHP comme ceci:

Code :
$xml = simplexml_load_file ('info.xml');
Et jusque là tout va bien! Maintenant comment faire pour scripter par exemple:

"Si le champs pseudo est égal à $variableX echo le champs age et departement"

J'avoue que j'ai un peu de mal c'est tout frais pour moi.

Merci de votre aide futur.

Nico
Hightuxdotnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2008, 12h26   #2
Membre éclairé
 
Inscription : janvier 2004
Messages : 426
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 426
Points : 311
Points : 311
quelque chose du genre

Code :
1
2
3
4
if((String)$xml->infos->pseudo == $monPseudo)
{
    echo (String)$xml->infos->age;
}
ca devrait faire l'affaire.. a tester, vu que c'est ecrit comme ca..
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2008, 22h48   #3
Futur Membre du Club
 
Avatar de Hightuxdotnet
 
Inscription : mai 2008
Messages : 73
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 73
Points : 18
Points : 18
Salut Zevince et merci pour ton aide, mais malheureusement ca ne me renvoi rien

Voici mon code complet, c'est pour alimenter un tooltip en CSS:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
[...] 
   $result = mysql_query('SELECT * FROM `chat` ORDER BY `id` DESC;') or die(mysql_error());
 
    	while($array = mysql_fetch_array($result)) {
 
 
 
?>
 
<em><?php echo $array['time']; ?></em><a href="#" class="info" /><?php echo $array['name']; ?><span><em>Age: <?php if((String)$xml->infos->pseudo == $array['name']) { echo (String)$xml->infos->age; } else { echo 'donnees non disponible...'; } ?><br />D&eacute;partement: .......... puis d'autres variables</span>
[...]
J'ai fais deux trois test mais pas moyen de trouver la bonne syntaxe qui me renvoi les données... Je continu mes recherches si une ame charitable peut me filer un coup de main ce sera pas de refus!

Nico
Hightuxdotnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2008, 10h52   #4
Futur Membre du Club
 
Avatar de Hightuxdotnet
 
Inscription : mai 2008
Messages : 73
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 73
Points : 18
Points : 18
Pour solutionner mon probléme, j'ai enfermé chaque membre de mon fichier xml et ses variable dans une balise <membre>.

Ensuite j'ai utiliser Xpath comme ceci:

Code :
$info0 = $xml->xpath(sprintf("membre[pseudo='%s']", $array['name'])); if($info0) { echo $info0[0]->age; } else { ....
Voila si ca peut aider quelqu'un...

Nico
Hightuxdotnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h06.


 
 
 
 
Partenaires

Hébergement Web