Page 1 sur 1

retrouver un element d'apres son id

Posté : 06 nov. 2009, 00:33
par Ykar
Bonjour,

je recupere une liste d'hébergements sous la forme d'un fichier xml, au final je me retrouve avec un objet :

$xml = new SimpleXMLElement($contents);

le fichier xml est sous cette forme :

[xml]- <detail dispo="-1" id="41614" pic="hebergement_m.gif">
<intitule>CAROFF</intitule>
- <ville>
<inseeVille>17385</inseeVille>
<intituleVille>ST PIERRE D OLERON</intituleVille>
</ville>
- <criteres>
- <critere id="400002862">
<intCritere>Classement préfecture</intCritere>
- <modalites>
- <modalite id="400002862000004" num="0">
<intModalite>4 étoiles</intModalite>
<valModalite />
<logoModalite emplacement="titre">http://tourisme.charente-maritime.org:8 ... goModalite>
</modalite>
</modalites>
</critere>
- <critere id="400002649">
<intCritere>Catégorie de camping</intCritere>
<modalites />
</critere>
- <critere id="400002858">
<intCritere>Capacité de la location</intCritere>
- <modalites>
- <modalite id="400002858000001" num="1">
<intModalite>Capacité d'accueil (pers.)</intModalite>
<valModalite>12</valModalite>
<logoModalite />
</modalite>
- <modalite id="400002858000002" num="1">
<intModalite>Nombre de chambres</intModalite>
<valModalite>5</valModalite>
<logoModalite />
</modalite>
- <modalite id="4000028580000010" num="0">
<intModalite>Nombre total de WC séparés</intModalite>
<valModalite>1</valModalite>
<logoModalite />
</modalite>
</modalites>
</critere>
</criteres>
</detail>[/xml]

J'arrive a parcourir toutes mes fiches de location à l'aide d'un foreach :
foreach ($xml->details->detail as $detail)
Je peux ainsi pour chaque logement afficher dans ma page les informations désirées :
<? echo $detail->intitule; ?>
J'aimerai a un moment donné afficher la capacité d'accueil du logement (ou le nombre de chambres)
soit le champ : valModalite de la modalité dont l'id est 400002858000001
[xml]- <modalite id="400002858000001" num="1">
<intModalite>Capacité d'accueil (pers.)</intModalite>
<valModalite>12</valModalite>
</modalite>[/xml]

comment procéder ?

merci

Re: retrouver un element d'apres son id

Posté : 06 nov. 2009, 14:20
par fab
http://www.php.net/manual/en/simplexmlelement.xpath.php

Grace à cette fonction SimpleXML te permet de faire des requêtes XPATH :)

Re: retrouver un element d'apres son id

Posté : 06 nov. 2009, 14:31
par Ykar
Merci pour cette reponse,
j'avais bien trouvé le xpath et commencé a chercher dans cette voie mais j'ai tout de même un soucis.

Avec le xpath je peux retrouver l'élément "prix" ou l'élément "nom" et j'y arrive

le soucis est que dans mon xml j'ai plusieurs criteres
<critere id="taille"> 30 m2</critere>
<critere id="lits">3</critere>
<critere id="5 personnes"></critere>
<critere id="WC"></critere>

comment faire pour afficher a un endroit de ma page le critere "lits" ?

Re: retrouver un element d'apres son id

Posté : 06 nov. 2009, 15:43
par fab
en xpath ça doit être quelque chose comme

/critere[@id="lits"]