Modifier fichier XML

Couin
Invité n'ayant pas de compte PHPfrance

04 nov. 2010, 17:37

Salut,
Je reviens vers toi ....
Si j'ai bien compris, mon fichier est un objet.
Pour accéder à un élément je fais

Code : Tout sélectionner

echo $xml->Décisions_iris[0]->Réponse_tiers;
Il me renvoie:
Trying to get property of non-object
Faut il que je déclare mon objet ?
Voilà ce que m'affiche un echo var_dump

Code : Tout sélectionner

object(SimpleXMLElement)#1 (1) { ["Décisions_iris"]=> object(SimpleXMLElement)#2 (23) { ["IDDécisions_iris"]=> string(2) "11" ["Numero"]=> string(9) "xxx" ["numlot"]=> string(3) "243" ["Matricule"]=> string(13) "xxx" ["Num_facture"]=> string(9) "xxx" ["Réponse_tiers"]=> string(176) "Le numéro de l'établissement prescripteur transmis est : xxx. Veuillez réexaminer la prescription médicale et retransmettre cette facture en corrigeant l'information." ["NOM_agent_traite_lot"]=> string(22) "xxx" ["qui_recycle"]=> string(2) "PS" ["Consigne_technicien"]=> string(100) "Le numéro de l'établissement prescriptemur transmis est inconnu de notre fichier Valider le rejet." ["Raison_possible"]=> string(82) "le numéro de l'établissement prescripteur transmis est inconnu de notre fichier." ["Num_rejet_signalement"]=> string(7) "xxx" ["libelle_utilisateur_anomalie"]=> string(35) "Prescripteur établissement inconnu" ["Nepastraiter"]=> string(1) "0" ["Prendre_motif_invalidation"]=> string(1) "0" ["date_naissance"]=> string(8) "xxx" ["Type"]=> string(21) "xxx" ["Reférence"]=> string(19) "xxx" ["rej_sig_sel"]=> string(3) "REJ" ["dateheuredecision"]=> string(17) "20101008083415480" ["num_caisse"]=> string(3) "xxx" ["Centre"]=> string(4) "xxx" ["Portefeuille"]=> string(5) "xxx" ["prescripteur"]=> string(9) "xxx" } }
Ensuite pour la modif je pense que la démarche devrait ressembler à ça, mais pour l'instant je n'arrive pas à naviguer dans mon objet.

Code : Tout sélectionner

$xml->Décisions_iris[0]->Réponse_tiers = 'toto';
Merci pour ton aide

ViPHP
ViPHP | 5462 Messages

04 nov. 2010, 17:39

ta toujours le mauvais encodage

Couin
Invité n'ayant pas de compte PHPfrance

04 nov. 2010, 18:05

Alors, quand je fais un

Code : Tout sélectionner

echo mb_convert_encoding ("Réponse_tiers","ISO-8859-1","ISO-8859-1");
Affichage = OK

Mais je ne peut pas le faire sur le fichier complet.

Code : Tout sélectionner

$xml = simplexml_load_string(file_get_contents(mb_convert_encoding($Way,"ISO-8859-1","ISO-8859-1")));
Il ne m'affiche rien.

Les problèmes d'encodage doivent être omnis présent quand on fait du développement Web il doit donc y avoir un moyen de travailler sur un objet entier lors de son loading, non ?

Eléphant du PHP | 275 Messages

05 nov. 2010, 19:06

$xml = simplexml_load_string(mb_convert_encoding(file_get_contents($Way),"ISO-8859-1","ISO-8859-1"));
parce que bon...

Couin
Invité n'ayant pas de compte PHPfrance

08 nov. 2010, 14:43

Salut,
J'ai essayé ton code mais le résultat est le même.
Merci en tout cas.

Eléphant du PHP | 275 Messages

08 nov. 2010, 19:14

Ben, fait etape par etape en affichant le résultat pour voir ou ça merde.

Couin
Invité n'ayant pas de compte PHPfrance

15 nov. 2010, 09:28

Salut,
Comment je peux afficher étape par étape, je ne comprends pas.
Quand je fais un load string je créé bien un objet en 1 fois non ?
Comment tester par étape ?

Couin
Invité n'ayant pas de compte PHPfrance

16 nov. 2010, 16:52

Bonjour,
Bon, je pense que le problème d'encodage est résolu grâce à vous.
J'ai modifier mon default_charset dans mon php.ini en le mettant à UTF-8.
Et pour charger mon fichier j'utlise la ligne de popy

Code : Tout sélectionner

$xml = simplexml_load_string(mb_convert_encoding(file_get_contents($Way),"ISO-8859-1","ISO-8859-1"));
Quand je fais un var_dump, les accents et les apostrophes s'affichent corectement.
Maintenant il me reste plus qu'à essayer de modifier la valeur d'un noeud.
Merci beaucoup à tous en tout cas