XML

KiteAtao
Invité n'ayant pas de compte PHPfrance

23 juil. 2010, 23:23

Bonjour,

Je souhaite lire un fichier XML. Pour cela, j'utilise simplexml.

Code : Tout sélectionner

$xml = simplexml_load_file('http://....');
Cela fonctionne bien mais pas pour certaines balises! Mon fichier XML contient des balises du type "<gphoto:name>". Le catactère ":" dans le nom de la balise semble poser des problèmes.

D'après le manuel PHP de "simplexml", la lecture d'une balise peux ce faire directement avec son nom ou bien entre '{' pour les noms spécifiques. J'ai essayé cette solution mais cela ne change rien.

Comment peut-on faire pour lire une balise contenant le caractère ":" d'un fichier XML? Merci de votre aide.

@+.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 juil. 2010, 04:30

Bonjour,

Les ":" dans tes balises XML correspondent aux "namespaces XML" et malheureusement simpleXML ne les gère pas.

2 possibilités :
- Utiliser les fonctions DOM
- Si c'est toujours le même Namespace qui pose problème (ex: "gphoto:") et que le XML que tu récupère n'est pas trop gros, le plus simple je pense est de charger ton XML avec file_get_contents(), de faire un str_replace du namespace problématique pour le supprimer et ensuite d'utiliser simplement simplexml_load_string()
Quand tout le reste a échoué, lisez le mode d'emploi...