Caractère interdit dans les fichiers xml

Répondre
moogli
le 16/11/2004 à 18:59
moogli
salut,

J'essais d'utiliser simplexml avce php5.0.2 (la lecture et utilisation des données pour l'instant smiley).

Le souci c'est que l'orsque je met des parenthèse, caractères accentués et autres caractères spéciaux (& par exemple) j'ai droit a une erreur !

Ma question est donc y a t'il un moyen d'utiliser c'est différent caractères dans un fichier xml ?

Je précise que coté xml je sais faire tit fichier suite a ce que j'ai lu de la doc (sa pas chier loin quoi :) )

Merci d'avance :)

@+
Il en faut peu pour être heureux !!!!!
Isaac
le 16/11/2004 à 19:07
Isaac
hello !

j'ai deja quelques notions en xml ! normalement, ca devrait marcher ! mais il exitse cei :
place ce que tu veux inscrire (nimporte quoi entre <![CDATA[ et ]]>

++
http://www.zmws.com
moogli
le 16/11/2004 à 19:14
moogli
lu,
explique un peu plus,

mon fichier a moi est comme sa
<truc>
<machin></machin>
<re></re>
</truc>

et je veut que dans machin et re je puisse mettre des éè ....

merci
Il en faut peu pour être heureux !!!!!
LA GLOBULE
le 16/11/2004 à 19:28
LA GLOBULE
Tu utilises quelle norme pour l'encodage de tes caractères ?

Sinon, as tu une DTD ?

[Message modifié le 16/11/2004 à 19:29 par LA GLOBULE]
moogli
le 16/11/2004 à 19:49
moogli
Pour l'encodage des carcatéres je viens de voir sa (par hasard) j'ai donc rajouté encoding="ISO-8859-1" sa a l'air de fonctionner !

pour la DTD tu va un peu loin pour moi smiley

par contre si tu connais un site qui peut m'expliquer sa simplement je suis prenneur. sa a l'air pas mal aussi pour la présentation de site (via XSL smiley)...

Merci smiley
Il en faut peu pour être heureux !!!!!
Isaac
le 16/11/2004 à 19:51
Isaac
exemple :

<? xml ... ?>
<truc>
<bidule>
<![CDATA[bonjour ! comment ça va ?]]>
</bidule>
</truc>


d'après moi, ca marche comme ca ! sinon, ecrit les caracteres speciaux &...; dans le <![CDATA[ et ]]> !!!

OK ? ++
http://www.zmws.com
moogli
le 17/11/2004 à 00:05
moogli
j'ai parcourue les lien d'Isaac et le touestfacile ma pas mal aidé a un peu mieux comprendre xml (la base) et ce que c'est qu'un dtd.
d'après ce que j'ai compris un dtd permet donner un structure au fichier xml mais je pense pas que simplexml en tienne compte (du moins d'après mes tests qui ne sont pas lois en la matière).

Je n'est jeté qu'un rapide coup d'oeil sur les fonctions xml de php sa ma l'air ben plus compliqué que simplexml :)

Merci pour tout !

smiley
Il en faut peu pour être heureux !!!!!
mojorisin
le 17/11/2004 à 08:49
mojorisin
simplexml c'est vraiment pour du xml basique.
J'ai eu quelques soucis pour une application qui utilisais un xml trop complexe a gerer via simple xml. Genre
<deb>
<val1 name="nom1">
<option opt="opt" truc="truc" />
</val1>
</deb>

Avec ca simplexml est vite largue quand il faut travailler avec xpath (ou alors je suis une quiche (c'est possible smiley))
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
moogli
le 17/11/2004 à 14:42
moogli
salut,

pour l'instant j'ai fait un fichier dans lequel j'entre des info, pas d'option de rtuc "bizard " je fait simple !
j'ai compris la base, pour le reste je crois que sa demande encore pas mal de taff !

pour en revenir a mon souci d'accent, en fait le parseur ne m'emmerde plus mais a l'affiche c'est une horreur le é se trouve trouve remplacer par un A avec un ~ dessus + le sigle copy ! j'aidonc fait une tite fonction qui remplace les caractères accetées par leurs equivalents html mis dans des <![CDATA[]]> et sa déconne plus !

c'est quand même un sacré merdier pour pouvoir utiliser les accents smiley

ma tite fonction pourle cas ou sa interresse quelqu'un (y a peu de chance mais sa me plaisir de poster donc ...)
<?php
//une fonction qui remplace les accents par leur entité html !
function accent ($chaine) {
$accent =array('é','É','è','È','ê','Ê','ë','ä','Ä','ô','ö','î','ï','€','ç','Ç');
$html = array('<![CDATA[&eacute;]]>', '<![CDATA[&Eacute;]]>', '<![CDATA[&egrave;]]>', '<![CDATA[&Egrave;]]', '<![CDATA[&ecirc;]]>', '<![CDATA[&Ecirc;]]>', '<![CDATA[&euml;]]>',
'<![CDATA[&auml;]]>', '<![CDATA[&Auml;]]>', '<![CDATA[&ouml;]]>','<![CDATA[&Ouml;]]>', '<![CDATA[&icirc;]]>','<![CDATA[&iuml;]]>', '<![CDATA[&euro;]]>','<![CDATA[&ccedil;]]>', '<![CDATA[&Ccedil;]]>'
);
$chaine =str_replace($accent,$html,$chaine);
return ($chaine);
}
?>


Donc voila j'i po trouvé d'autre solution !

Merci a tous !
smiley

[Message modifié le 18/11/2004 à 09:37 par mojorisin]
Il en faut peu pour être heureux !!!!!
Répondre
LoadingChargement en cours