Porblème simplexml_load_file et &

Signaler
Messages postés
5
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
10 décembre 2008
-
Messages postés
5
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
10 décembre 2008
-
Bonjour à tous,

Voici mon problème. Je dois traiter des fichiers xml en automatique pour inserer dans une base mysql. J'ai donc créée un script php pour faire ce travail, mais j'ai un soucis sur la lecture du fichier xml lorsqu'il y a un & dans un champ.

Voici le code que j'utilise pour tester la lecture du fichier:

<?php
if (file_exists('fichier.xml')) {
$listing = simplexml_load_file('fichier.xml');
foreach ($listing->CLIENT as $client){
print "Client {$client['code']}
\n";
foreach ($client->PRODUIT as $produit){
print "Code Produit : {$produit['code']}
\n";
print "Commande : {$produit->COMMANDE}
\n";
print "Designation : {$produit->DESIGNATION}
\n";
print "Quantite : {$produit->QUANTITE}
\n";
print "Prix : {$produit->PRIX}

\n";
}
}
}
?>

Si dans la partie Designation il y a un & un message d'erreur s'affiche. Le problème c'est que je ne sais pas comment faire pour remplacer les & par & dans mon fichier d'origine avant de faire ma manip.

Est-ce que quelqu'un peut m'indiquer une solution ??

Merci d'avance.

2 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

& ou &amp;, ça ne changera pas grand chose : au cas où tu ne l'as pas remarqué, dans "&amps;", il y a aussi "&"...;-)
De plus, XML ne comprends pas les entités HTML sans une DTD ou un schéma les définissant.
La solution facile : mettre tes textNodes dans des CDATA.
Messages postés
5
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
10 décembre 2008

Bonjour,

& ou & change quelque chose. J'ai fait les tests nécessaires avant de poster ce message.

Pour info, les fichiers xml sont posés sur un serveur par un system que je ne gère pas. C'est pour ça que je ne peux pas utiliser les CDATA...

Je suis donc toujours à la recherche d'une solution pour modiifer dans les fichiers xml les & par & à moins que quelqu'un me propose d'utiliser un parseur différent du simplexml_load_file.