Modifier fichier XML

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 11:52

Je ne peux pas modifier l'entête de mon fichier car il est créé automatiquement par une appli.
Comment est ce que je peux le convertir en utf-8 ?
Serait-il possible de le faire lors de la lecture du fichier ?

Je suis désolé de poser des questions si basiques mais je fais de PHP depuis 2 semaines.

Merci pour ton aide

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 11:57

t'as iconv ?

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 12:08

Je me renseigne sur cette librairie et je te dis.
Je pense que oui. Je vais voir comment l'intégrer avec un simpleXML_load_file()
Merci pour ton aide, je regarde ça et je te tiens informé.

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 15:24

Bon, j'ai regardé iconv et je n'ai pas réussi à bien m'en servir car le problème reste entier.
J'ai essayé aussi avec les DOM mais j'ai le même problème.
Est ce possible d'ouvrir un document XML quel que soit sont encodage de manière générique afin de rechercher une chaine de caractère pour la modifier ?

Voilà mon code actuel

Code : Tout sélectionner

$dom_object = new DomDocument(); $dom_object->load($File); $Rep=$dom_object->getElementsByTagName('Réponse_tiers'); foreach($Rep as $RepTiers) echo $Rep. "<br />";
Voilà l'erreur renvoyée
Opening and ending tag mismatch

Merci de votre aide

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 15:38

qui créer ce fichier ?

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 16:32

Le fichier est crée automatiquement par une application métier. Je n'ai pas la main dessus.
Le fichier XML est ensuite insérer dans un mail.

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 16:36

sois tu fais un utf8_(d)encode sur un file_get_contents, quu tu charge avec simplexml, sois faut convertir le stream a la volé

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 17:00

Alors, J'ai écrit ça

Code : Tout sélectionner

$xml = simplexml_load_file(utf8_encode(file_get_contents($Way)));
Il me retourne un Warning
I/O warning : failed to load external entity

Quelque chose ne lui plait pas mais c'est mieux.
J'avais mis le file_get_contents mais pas avec le utf8_encode.
Merci pour ton aide

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 17:03

simplexml_load_file c'est pour lire un fichier... la tu lit un chaine donc c'est simplexml_load_string

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 17:11

Oui mais avec un simplexml_load_string() il me renvoyait plus d'erreur !!

Entity: line 3: parser error : error parsing attribute name
Couldn't find end of Start Tag DÃ

Pfff je rame sévère ...

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 17:15

fais un utf8_decode a la place

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 17:18

Idem

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 17:19

et sans ?

Couin
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 17:26

C'est bon, du moins je n'ai plus de message !!!!
Quand je fais un var_dump, il m'affiche mon fichier.
Super, je n'ai plus qu'à faire une recherche de chaine de caractere ou de balise pour faire ma modif.
Tu me conseilles quelle fonction pour une recherche et une modif ?

Merci

ViPHP
ViPHP | 5462 Messages

03 nov. 2010, 17:34

pas besion de fonction c'est un objet tu le modifie direct :wink: