Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
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 29/11/2006, 15h42   #1
Invité de passage
 
Inscription : mars 2003
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 8
Points : 0
Points : 0
Par défaut [PHP] Difficultés pour lire un fichier XML

Bonjour à tous,

Je rencontre quelques difficultées pour lire certains éléments d'un fichier XML

En fait les premiers éléments du fichier ne me pose pas de problème mais pour récupérer les "attributs?" des élements photos d'un bien cela me pose problème.

Quelqu'un pourrait il me donner quelques pistes pour récupérer "<nphoto>" et "<sfilename>" j'ai essayé pas mal de chose mais rien ne fonctionne.

Merci de votre aide


ci-joint la partie qui m'interesse du fichier xml :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
- <bien>
  <nbien>1</nbien> 
  <cagence>demo</cagence> 
  <cbien>005</cbien> 
  <mprix>225000</mprix> 
  <ctyp>ma</ctyp> 
  <nannee>1875</nannee> 
  <qsurfterrain>2500</qsurfterrain> 
  <cetat>+</cetat> 
  <qchambres>3</qchambres> 
  <qpieces>6</qpieces> 
  <qsurfhab>140</qsurfhab> 
  <qsurfsejour>35</qsurfsejour> 
  <cregion>3</cregion> 
  <cenvironnement>cpni</cenvironnement> 
  <ctypmandat>v</ctypmandat> 
  <ndisponibilite>1</ndisponibilite> 
  <lcp>24150</lcp> 
  <llocalite>BAYAC</llocalite> 
  <cisopays>FRA</cisopays> 
  <nnatmandat>2</nnatmandat> 
  <cnaturebien>res</cnaturebien> 
- <lvue>
- <![CDATA[ S
  ]]> 
  </lvue>
  <qsdb>1</qsdb> 
  <qsdd>1</qsdd> 
  <qgarages>1</qgarages> 
  <nanneerenov>1986</nanneerenov> 
- <cchauf>
- <![CDATA[ BF
  ]]> 
  </cchauf>
  <ntypcuisine>6</ntypcuisine> 
  <mrevcad>950</mrevcad> 
  <mcharge /> 
  <mprecimmo>2300</mprecimmo> 
  <cstyle>CAR</cstyle> 
  <dcre>12/12/2004</dcre> 
  <dmod>18/12/2004</dmod> 
  <qbureau>1</qbureau> 
  <qsurfterrasse>32</qsurfterrasse> 
  <qmurmitoy /> 
  <ctypmeta>mai</ctypmeta> 
  <sfilenamephoto1>1895fr1p129.jpg</sfilenamephoto1> 
- <photo>
  <nphoto>129</nphoto> 
- <lshortdescfr>
- <![CDATA[ Façade
  ]]> 
  </lshortdescfr>
  <sfilename>1895fr1p129.jpg</sfilename> 
  <url>http://www.monagence.net/photo/1895fr1p129.jpg</url> 
  <nangle /> 
  <nordre>1</nordre> 
  </photo>
- <photo>
  <nphoto>2</nphoto> 
- <lshortdescfr>
- <![CDATA[ cuisine
  ]]> 
  </lshortdescfr>
  <sfilename>1895fr1p2.jpg</sfilename> 
  <url>http://www.monagence.net/photo/1895fr1p2.jpg</url> 
  <nangle /> 
  <nordre>2</nordre> 
  </photo>
- <photo>
  <nphoto>7</nphoto> 
- <lshortdescfr>
- <![CDATA[ Séjour
  ]]> 
  </lshortdescfr>
  <sfilename>1895fr1p7.jpg</sfilename> 
  <url>http://www.monagence.net/photo/1895fr1p7.jpg</url> 
  <nangle /> 
  <nordre>3</nordre> 
  </photo>
- <photo>
  <nphoto>11</nphoto> 
- <lshortdescfr>
- <![CDATA[ Chambre
  ]]> 
  </lshortdescfr>
  <sfilename>1895fr1p11.jpg</sfilename> 
  <url>http://www.monagence.net/photo/1895fr1p11.jpg</url> 
  <nangle /> 
  <nordre>4</nordre> 
  </photo>
- <biendesc>
  <clangue>fr</clangue> 
- <ltypmeta>
- <![CDATA[ Maison
  ]]> 
  </ltypmeta>
- <ltypmetafr>
- <![CDATA[ Maison
  ]]> 
  </ltypmetafr>
- <lregion>
- <![CDATA[ Aquitaine
  ]]> 
  </lregion>
- <lnaturebien>
- <![CDATA[ Résidentiel
  ]]> 
  </lnaturebien>
- <lenvironnement>
- <![CDATA[ Campagne non-isolée
  ]]> 
  </lenvironnement>
- <ldisponibilite>
- <![CDATA[ A l'acte
  ]]> 
  </ldisponibilite>
- <lstyle>
- <![CDATA[ Caractère
  ]]> 
  </lstyle>
- <ltypmandat>
- <![CDATA[ Biens AV
  ]]> 
  </ltypmandat>
- <letat>
- <![CDATA[ Bon
  ]]> 
  </letat>
- <lchauf>
- <![CDATA[ Bois et Fuel
  ]]> 
  </lchauf>
- <ltypcuisine>
- <![CDATA[ Aménagée
  ]]> 
  </ltypcuisine>
- <ltyp>
- <![CDATA[ Maison
  ]]> 
  </ltyp>
+ <ltitre>
- <![CDATA[ Magnifique maison en pierres apparentes avec parc arboré
  ]]> 
  </ltitre>
- <lannonce>
- <![CDATA[ Magnifique maison en pierres apparentes avec parc arboréSéjour de 30 m² avec cheminée en pierre, cuisine aménagée de 22 m², un wc, à l'étage: 3 chbs de 20 m², une mezz , SdB lumineuse, wc, cave, garage, grand parc arboré et cloturé autour la maison de 2 500m², située à proximité d'un charmant petit village
  ]]> 
  </lannonce>
+ <lannonceweb>
- <![CDATA[ Un séjour de 30 m² avec cheminée en pierre, une cuisine aménagée de 22 m² avec cheminée (insert), une chaufferie servant de lingerie, un wc, à l'étage: 3 chambres de 20 m², une mezzanine avec poutres apparentes, une salle de bains lumineuse, un wc, une cave, un grand garage, un grand parc arboré et cloturé autour la maison de 2 500m², le tout situé à proximité d'un charmant petit village
  ]]> 
  </lannonceweb>
- <lhtml>
- <![CDATA[ <P>Un séjour de 30 m² avec cheminée en pierre, une cuisine aménagée de 22 m² avec cheminée (insert), une chaufferie servant de lingerie, un wc, à l'étage: 3 chambres de 20 m², une mezzanine avec poutres apparentes, une salle de bains lumineuse, un wc, une cave, un grand garage, un grand parc arboré et cloturé autour la maison de 2 500m², le tout situé à proximité d'un charmant petit village</P>
  ]]> 
  </lhtml>
- <lascii>
- <![CDATA[ Un séjour de 30 m² avec cheminée en pierre, une cuisine aménagée de 22 m² avec cheminée (insert), une chaufferie servant de lingerie, un wc, à l'étage: 3 chambres de 20 m², une mezzanine avec poutres apparentes, une salle de bains lumineuse, un wc, une cave, un grand garage, un grand parc arboré et cloturé autour la maison de 2 500m², le tout situé à proximité d'un charmant petit village
  ]]> 
  </lascii>
  </biendesc>
  </bien>
moutyk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 19h11   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

Citation:
Envoyé par moutyk
j'ai essayé pas mal de chose mais rien ne fonctionne.
Mais encore ?
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2006, 19h19   #3
Invité de passage
 
Inscription : mars 2003
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 8
Points : 0
Points : 0
Il manque quelques informations en effet ...

Le but est de récupérer certains éléments des biens pour les enregistrer dans une base de donnée MYSQL le tout en php.

En fait il faudrait que je récupère les éléments du "bloc" photo de chaque bien.

D'une manière générale comment peut on faire ?

Merci
moutyk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2006, 11h53   #4
Invité de passage
 
Inscription : mars 2003
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 8
Points : 0
Points : 0
Bonjour,

Vraiment personne ne pourrait m'aider à résoudre ce problème ? En fait je souhaiterais juste pouvoir faire une boucle sur le nom des photos pour chaque bien.

Merci de votre aide
moutyk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2006, 13h14   #5
Invité de passage
 
Inscription : mars 2003
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 8
Points : 0
Points : 0
Voici ce que j'ai déjà et ce avec quoi je combat

J'ai trouve ce bout de script sur internet et il fonctionne très bien pour les éléments principaux mais impossible de récupérer les éléments de photo de chaque bien.



Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 function contenu_textuel($noeud_parent)
  {
    $noeuds = $noeud_parent->child_nodes();
    while($noeud = array_shift($noeuds))
    {
      if ($noeud->node_type() == XML_TEXT_NODE)
      {
        $resultat = $noeud->node_value();
        return $resultat;
      }
    }
  }
 
  function traitement_element($noeud_parent, $nom)
  {
    $noeuds = $noeud_parent->child_nodes();
    while($noeud = array_shift($noeuds))
    {
      if ($noeud->node_name() == $nom)
      {
        $resultat = contenu_textuel($noeud);
        return $resultat;
      }
    }
  }
 
  function traitement_attribut($noeud_parent, $nom, $attribut)
  {
    $noeuds = $noeud_parent->child_nodes();
    while($noeud = array_shift($noeuds))
    {
      if ($noeud->node_name() == $nom)
      {
        $resultat = $noeud->get_attribute($attribut);
        return $resultat;
      }
    }
  }
 
  $tab_elements = array("bien","cbien","mprix","ctyp","qpieces","qsurfhab","llocalite","sfilenamephoto1","photo","lcp","cregion","qsurfterrain","ndisponibilite","lannonceweb","ltitre","sfilename","photo");
 
  $xml_doc = domxml_open_file("export.xml") 
    or die("Impossible d'ouvrir le fichier XML !");
  $element_racine = $xml_doc->document_element();
  $noeuds_enfants = $element_racine->child_nodes();
 
  foreach($noeuds_enfants as $noeud)
  {
    if($noeud->node_type() == XML_TEXT_NODE) continue;
 
	for($i = 0; $i < sizeof($tab_elements); $i++)
    {
      ${$tab_elements[$i]} = traitement_element($noeud, $tab_elements[$i]);
    }
 
    foreach($tab_attributs as $cle=>$valeur)
    {
      $$cle = traitement_attribut($noeud, $tab_elements[$valeur], $cle);
    }
 
 
	 if($cbien != "")
	 {
              // on récupère les infos principales
echo "Référence du bien : $cbien<br>
        Type de bien : $ctyp<br>
        Prix : $mprix<br><br>";
 
	 }
 
  }

Si cela peut vous aider ! Je suis sous PHP4

Merci
moutyk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h27.


 
 
 
 
Partenaires

Hébergement Web