OVH Community, votre nouvel espace communautaire.

prob de transcription php vers xml


asba
18/11/2004, 14h24
merci....

c'est résolu

A bientôt

Uzume
10/11/2004, 00h31
Bonsoir asba,

Je ne connais que très peu (extrêmement peu même) php, et pas du tout mysql, alors je ne sais pas si mon aide te sera très utile.

Par contre, pratiquant xml, je peux t'affirmer que des myriades d'antislach, de slach ou de biduleslach ne changeront rien !

Ton erreur se situe ici : "Cette apostrophe étant prise pour la fin d'un guillemet simple" <--- si tu appelles guillemet simple cette chose : ' tu fais fausse route, car il s'agit d'une apostrophe

Donc, tu ouvres tes attributs xml entre des apostrophes, ce alors que tu utilises d'autres apostrophes dans celui-ci ! Horreur ! Malheur !

C'est simple, regarde :

ex: truc='aaa l'bbb'

ou :

truc='aaa l'fff d'eee'

Ils ne peuvent pas fonctionner, tout simplement parce-que la valeur de l'attribut étant située entre les apostrophes, ce qu'il y a après le l n'en fait pas parti, mais pire encore, ne fait parti de rien d'autre de valable dans le xml.

En fait, dans ton cas, il me semble que ton problème serait résolu en plaçant tes attributs entre guillemets :

truc="aaa l'fff d'eee" ou truc="aaa l'bbb"

Au moins, pas de risque de confusions, l'attribut va du premier " au suivant, qui est dans notre cas le bon.

Tu peux aussi remplacer par leur code tes apostrophes situées à l'intérieur des attributs (nécessaire sur tu gardes ton guillemet simple, donc apostrophe, pour l'ouverture et la fermeture des attributs). Même raisonnement pour des " à l'intérieur, avec une ouverture/fermeture guillemet (")
Utile aussi en cas de guillemets + apostrophes à l'intérieur des attributs

En espérant avoir pu te rendre service

asba
02/11/2004, 16h19
Bonjour,

J'ai un problème de transforamtion de données venant d'une base mysql exploitées par un fichier php qui écrit du xml.

En effet... les éléments recupérés qui comportent des apostrophes me bloquent le fonctionnement du xml.

Cette apostrophe étant prise pour la fin d'un guillemet simple.

L'erreur ne se produit que lorsque je définit un attribut de ma balise.
C'est à dire lorsque l'expression est entre chevrons.

On m'a conseillé de "déspécialiser" l'expression en utilisant la fonction addslashes de php mais ca ne change rien...

Voilà ma ligne de code :

$xml_output .= "\t\t\t\t ' " . utf8_encode($row['comment_img']) . " ' \n";


le probleme est le suivant si le champ comment_img comporte une apostrophe le xml s'arrête d'analyser sur cette apostrophe et fait une erreur.

J'ai bien essayé
addslashes(utf8_encode($row['comment_img']) )

C'est pareil...

Une solution ?
Une idée...
Je suis tout ouïe...

Merci d'avance