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 09/12/2011, 16h58   #1
Invité de passage
 
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Problème pour récupérer l'attribut de la balise principale avec SimpleXML

Bonjour à toutes et tous,

Je tourne en rond depuis un bon moment pour un problème qui je suis sur doit être tout bête.

J'ai le xml de forme suivante :
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
 
<?xml version="1.0" encoding="ISO-8859-15" ?>
<client code="ag590001">
<annonce id="AAA">
	<reference>AAA</reference>
	<titre>AAA</titre>
	...
	<photos>
		<photo>http://www.....jpg</photo>
	</photos>
	<bien>
		<type>AAA</type>
		...
		<code_type>AAA</code_type>
	</bien>
	<prestation>
		<type>AAA</type>
		...
		<prix>AAA</prix>
	</prestation>
</annonce>
 
<annonce id="BBB">
	<reference>BBB</reference>
	<titre>BBB</titre>
	...
	<photos>
		<photo>http://www.....jpg</photo>
		<photo>http://www.....jpg</photo>
	</photos>
	<bien>
		<type>BBB</type>
		...
		<code_type>BBB</code_type>
	</bien>
	<prestation>
		<type>BBB</type>
		...
		<prix>BBB</prix>
	</prestation>
</annonce>
</client>
Je veux intégrer le contenu du xml en bdd . Pour celà, j'utilise simpleXML pour construire ma requête sql

J'arrive à récupérer l'ensemble des balises ainsi que l'attribut id de <annonce id =""> mais je bute sur l'attribut code de la balise principale client :

Citation:
<?xml version="1.0" encoding="ISO-8859-15" ?>
<client code="ag590001">

<annonce id="AAA">
j'ai utilisé le même code que pour la récupération de l'id de annonce mais ça ne fonctionne pas.

Voici le code qui fonctionne pour la récupération de l'id de <annonce id="zz"> mais qui ne va pas pour le code de <client code ="nnn">

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
 
<?php ini_set('mysql.trace_mode', true);
$xml = simplexml_load_file('file.xml');
 
$table = array(
	'code'   => 'code', // attribut code de client
	'annonce_id'   => 'annonce_id', // attribut id de annonce
	'adresse'   => 'adresse',
	'web'   => 'web',
	...
	'prix'   => 'prix',		
);
 
 $id=0;
foreach($xml->annonce as $bien)
{
    $data = array();
 
	foreach($xml->annonce[$id]->attributes() as $a => $b)
       {
	$data[$table['annonce_id']] = sprintf("'%s'", mysql_real_escape_string($b));
	$id++;
	}
 
 	   foreach($bien as $key => $value)
  	  {
 	       if(array_key_exists($key, $table))
  	      {
    	        $data[$table[$key]] = sprintf("'%s'", mysql_real_escape_string($value->__toString()));
        }
  	  }   
 
...
Auriez vous la solution à mon petit soucis ?
oli004 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 11h35   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Code :
1
2
$xml = simplexml_load_file('file.xml');
$code = $xml['code'] ;
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 04h50   #3
Invité de passage
 
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 0
Points : 0
J'ai ai honte tellement cela parait simple

J'ai ainsi pu terminer mon script qui fonctionne à 100%. Une optimisation est sans doute possible, mais ce n'est que secondaire pour le moment.

Merci beaucoup pour ton aide Seb.
oli004 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 22h21.


 
 
 
 
Partenaires

Hébergement Web