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 23/11/2006, 01h14   #1
Invité régulier
 
Inscription : octobre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 27
Points : 7
Points : 7
Par défaut [SimpleXML] Récupérer des mots étrangers dans XML

Bonjour / bonsoir,

désolé pour le titre à rallonge.

Je tente vaillament de parser un fichier xml avec php. Je suis encore en version 4 pour des raisons politiques.
Du coup j'ai un code qui m'affiche correctement la valeur de mes noeuds etc.
Sauf que je travaille en Persan et que là, c'est la catastrophe je me retrouve avec des ????? à la place de mon mot. Dans mon xml j'ai pourtant eu la possibilité d'ajouter mes mots sans soucis.
Mon fichier php est en utf-8 et le xml aussi.
Si encore il me transformait ça en utf-8 je dirais ok !

Je pense que l'erreur doit venir de mon parsing php (que j'ai trouvé tout fait hein...)alors je me permet de vous le mettre ici. Je pense ça car j'arrive bien à récupérer mes mots Persans en passant par flash par exemple.

Merci beaucoup beaucoup pour les gens qui ont une idée et encore pardon pour la longueur de la tartine.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
// The XML file that you wish to be parsed
$file = "xml_beginner.xml";
 
// This function tells the parser what to do with the data once it reaches the contents
// that appear between tags.
function contents($parser, $data){
	echo $data;
}
 
// This function tells the parser to place a <b> where it finds a start tag.
function startTag($parser, $data){
	echo "<b>";
}
 
// And this function tells the parser to replace the end tags with "<b><br />"
function endTag($parser, $data){
	echo "</b><br />";
}
 
// These lines create the parser and then set the functions for the parser to use when
// reading the document.
$xml_parser = xml_parser_create('');
 
// Sets the functions for start and end tags
xml_set_element_handler($xml_parser, "startTag", "endTag");
// Sets the function for the contents/data
xml_set_character_data_handler($xml_parser, "contents");
 
// Opens the file for reading
$fp = fopen($file, "r");
 
// Read the file and save its contents as the variable "data"
$data = fread($fp, 80000);
 
// This if statement does two things. 1) it parses the document according to our 
// functions created above. 2) If the parse fails for some reason it returns an
// error message and also tells us which line the error occured at.
if(!(xml_parse($xml_parser, $data, feof($fp)))){
	die("Error on line " . xml_get_current_line_number($xml_parser));
}
 
// Free the memory used to create the parser
xml_parser_free($xml_parser);
 
// Close the file when you're done reading it
fclose($fp);
?>
yamayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 07h04   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

a priori, le problème ne vient pas de ton code PHP. Le fait d'utiliser xml_parser_create() sans préciser d'encodage en paramètre, signifie que l'encodage de sortie sera le même que l'encodage d'entrée. Le problème doit plus venir de l'affichage de la page par le navigateur. Tu devrais ajouter une balise META précisant l'encodage de la page, pour tester...
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2006, 23h25   #3
Invité régulier
 
Inscription : octobre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 27
Points : 7
Points : 7
Merci pour ta réponse mais j'ai finalement opté pour SimpleXml. D'un côté c'est 1000x plus clair pour récupérer mes infos et en plus j'arrive bien à afficher mes mots en persans.

Maintenant, yapluka trouver un hebergeur avec du php5 ou un truc équivalent en php4 (je suis sur le point de tester miniXml).

Bonne soirée,

Y
yamayo 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 23h33.


 
 
 
 
Partenaires

Hébergement Web