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

Petit nouveau ! | 6 Messages

15 août 2011, 21:10

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

Eléphant du PHP | 171 Messages

15 août 2011, 21:17

Une fois ton noeud récupéré utilise utf8_encode ;)
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Petit nouveau ! | 6 Messages

15 août 2011, 21:23

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 août 2011, 21:30

quel est le code utilisé ?

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 171 Messages

15 août 2011, 21:38

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.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Petit nouveau ! | 6 Messages

15 août 2011, 22:22

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>
Modifié en dernier par albert le 16 août 2011, 00:13, modifié 1 fois.

Eléphant du PHP | 171 Messages

15 août 2011, 22:38

Utilise les balises pour entourer ton code ;) Ce sera plus lisible. Peux tu nous monter ton code actuel ?
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Petit nouveau ! | 6 Messages

15 août 2011, 22:57

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>'; } ?>
Modifié en dernier par albert le 16 août 2011, 00:15, modifié 1 fois.

Eléphant du PHP | 171 Messages

15 août 2011, 23:12

echo 'A2A1 : ' ,$TUTU->prénom.'<br>';
La partie en gras est la clé. Donc un utf8_decode de cette clé devrait être ok.
Modifié en dernier par Skw33d le 15 août 2011, 23:36, modifié 2 fois.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Petit nouveau ! | 6 Messages

15 août 2011, 23:23

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

Eléphant du PHP | 171 Messages

15 août 2011, 23:37

echo 'A2A1 : ' .$TUTU[utf8_decode('prénom')] . '<br>'; 
Ne fonctionne pas ?
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Petit nouveau ! | 6 Messages

15 août 2011, 23:50

retour du fichier PHP sur le navigateur
ne fonctionne toujours pas...

Code : Tout sélectionner

A2A1 : A2A1 :