Page 1 sur 1

XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 21:10
par albert
bonjour à tous,

je veux exploité un fichier XML avec du PHP, mais le souci est que le fichier XML est encoding="ISO-8859-1"
donc je n'arrive pas a récupéré des nœud XML qui intègre des accents
est ce que quelqu’un pourrais m'aider sur ce point
merci d’avance

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 21:17
par Skw33d
Une fois ton noeud récupéré utilise utf8_encode ;)

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 21:23
par albert
mais le souci est que je n'arrive pas a l'utiliser
y a t il un exemple simple
parce que apparemment ça traduit des chaine de caractère uniquement
mais mon fichier XML fais des milliers de lignes
peux tu m'aider.

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 21:30
par moogli
quel est le code utilisé ?

@+

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 21:38
par Skw33d
Pourtant la fonction est simple. :) Elle traduit une chaîne de caractère encodé en ISO-8859-1.
Donc à la récupération d'un noeud ayant par exemple pour valeur :

Code : Tout sélectionner

<item>"hé, j'étais encodé en UTF-8 avant."</item>
$value = getElementsByTagName('item')->item(0)->nodeValue; //La chaine récupéré est encodé en ISO-8859-1.
/* Je la veux donc en UTF-8, alors j'utilise la fonction adéquate */
$value = utf8_encode($value);
Après je vois que toi tu souhaites à partir de ton fichier PHP recherché une valeur ayant un accent.
/* Et bien c'est l'inverse, tu utilise */
$to_find = utf8_decode('sur ta chaîne accentuée'); 
et après tu pourras comparer la valeur avec une chaîne ISO-8859-1.

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 22:22
par albert
les balise qui me pose problème sont les suivante :
<prénom>Jean</prénom>
comment les récupérer en PHP
merci encore de votre aide .

code épurer :

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <A> <A1> </A1> <A2> <A2A> </A2A> <A2B> <A2B1> </A2B1> <Utilisateur> <prénom>Jean</prénom> </Utilisateur> <Utilisateur> <prénom>Jacques</prénom> </Utilisateur> </A2B> </A2> </A>

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 22:38
par Skw33d
Utilise les balises pour entourer ton code ;) Ce sera plus lisible. Peux tu nous monter ton code actuel ?

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 22:57
par albert

Code : Tout sélectionner

<?php $TOTO = simplexml_load_file('mon_fichier.xml'); foreach($TOTO->A2->A2B->Utilisateur as $TUTU) { echo 'A2A1 : ' ,$TUTU->prénom.'<br>'; } ?>

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 23:12
par Skw33d
echo 'A2A1 : ' ,$TUTU->prénom.'<br>';
La partie en gras est la clé. Donc un utf8_decode de cette clé devrait être ok.

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 23:23
par albert
voici le retour de code

Code : Tout sélectionner

Parse error: syntax error, unexpected '<', expecting T_STRING or T_VARIABLE or '{' or '$' in xxx.php on line 27

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 23:37
par Skw33d
echo 'A2A1 : ' .$TUTU[utf8_decode('prénom')] . '<br>'; 
Ne fonctionne pas ?

Re: XML encoding="ISO-8859-1" vers php

Posté : 15 août 2011, 23:50
par albert
retour du fichier PHP sur le navigateur
ne fonctionne toujours pas...

Code : Tout sélectionner

A2A1 : A2A1 :