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 29/07/2006, 08h57   #1
Membre confirmé
 
Inscription : septembre 2004
Messages : 519
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 519
Points : 257
Points : 257
Par défaut [SimpleXML] pb avec simplexml_load_string

bonjour,

je n'arrive pas à utiliser des caracteres comme '<' dans mon XML.
dans l'exemple suivant, je pensais qu'en utilisant ![CDATA[, ca passerait, mais non
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
  $str = "<root><elem>un chien < un chat</elem></root>";
  $xmlstr = simplexml_load_string($str);
  echo $xmlstr->elem;
 
  echo '<br><br>';
 
  $str2 = "<root><elem>![CDATA[un chien < un chat]]</elem></root>";
  $xmlstr2 = simplexml_load_string($str2);
  echo $xmlstr2->elem;
?>
Dans les 2 cas, simplexml_load_string() plante
comment est-ce qu'on peut mettre des '<' dans des champs simplexml ?
bibile est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2006, 09h23   #2
Invité de passage
 
Inscription : juillet 2006
Messages : 1
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1
Points : 1
Points : 1
Pourquoi n'essayes-tu pas de mettre le caractere html c'est à dire &lt; ?
|NeXo| est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2006, 09h33   #3
Membre confirmé
 
Inscription : septembre 2004
Messages : 519
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 519
Points : 257
Points : 257
parce que je stock la chaine xml dans une table mySQL. et donc, pour ca, je dois faire htmlspecialchars() et ensuite addslashes().
ca marcherai, sauf que lorsque je sors la chaine xml de la base de données, je dois faire un stripslashes() et un htmlspecialchars_decode(). donc, ca n'arrangera rien.

pour info, cette chaine XML est faites dans javaScript.

je vais voir si je peux faire une sorte de htmlspecialchars() dans javascript lors de la construction de la chaine. ca resoudra peut-etre le pb.

merci pour ton aide !
bibile est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2006, 12h09   #4
Membre confirmé
 
Inscription : septembre 2004
Messages : 519
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 519
Points : 257
Points : 257
bon, finalement, en javascript, lors de la formation de ma chaine, je fais un string_replace de '<', '>' et '&'.
ensuite, je peux faire un implexml_load_string($str).

et lorsque je veux sortir un resultat, je le reparse:
replaceStr($xml->elem);
avec dans replaceStr() l'inverse de ce qui avait ete fait en javascript.

mais bon, je suis assez decu, ca fait vraiment bricolage. pourquoi il n'y a pas toutes les fonctions, en UTF-8, qui blindent toutes ces interfaces entre languages
bibile 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 12h23.


 
 
 
 
Partenaires

Hébergement Web