xmlParseEntityRef: no name

Le
unbewusst.sein
j'ai un petit script php qui génère cette erreur :
This page contains the following errors:

error on line 1985 at column 28: xmlParseEntityRef: no name
Below is a rendering of the page up to the first error.

la page est présentée au butineur après une transformation xslt.

le fichier xml d'origine est issu d'un fichier texte en Mac Roman, tsv,
transformé en xml par mes soins.

j'ai déjà transformé les "&", "<" et ">" en "&amp;", "&amp;lt;" et
"&amp;gt;" respectivement mais il doit me rester des entités non
référencées d'après ce que me dit le parser.

comme le fichier est long (la page html générée fait 40000 lignes) je
n'ai pas envie de vérifier à la main.

le fichier xml est confidentiel, ce sont mes mots de passe, comptes en
banque etc

y a t'il un outil qui me permettrait de véifier sa validité offline sur
Mac OS X ???
--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
unbewusst.sein
Le #23533231
Une Bévue
j'ai un petit script php qui génère cette erreur :
This page contains the following errors:

error on line 1985 at column 28: xmlParseEntityRef: no name
Below is a rendering of the page up to the first error.

la page est présentée au butineur après une transformation xslt.

le fichier xml d'origine est issu d'un fichier texte en Mac Roman, tsv,
transformé en xml par mes soins.

j'ai déjà transformé les "&", "<" et ">" en "&amp;", "&amp;lt;" et
"&amp;gt;" respectivement mais il doit me rester des entités non
référencées d'après ce que me dit le parser.

comme le fichier est long (la page html générée fait 40000 lignes) je
n'ai pas envie de vérifier à la main.

le fichier xml est confidentiel, ce sont mes mots de passe, comptes en
banque etc...

y a t'il un outil qui me permettrait de véifier sa validité offline sur
Mac OS X ???




Précisions, la ligne indiquée est celle du fichier résultat, donc html,
elle contient :
Copy & paste the above Keycode into the Program. For detailed
instructions, see below: Copy & Paste Instructions: 1. COPY the Keycode
above by highlighting the text then holding the Command key down, hit
the 'C' key. 2. Launch the SereneScreen Marine Aquarium by
double-clicking on the program icon. 3. Press the spacebar to open the
Register dialog box. 4. Hold the Command key down and hit the 'V' key,
this will copy the Keycode into the program. 5. Press the ENTER key to
complete the registration.

le fichier xml lui contient :
Copy &amp; paste the above Keycode into the Program. For detailed
instructions, see below: Copy &amp; Paste Instructions: 1. COPY the
Keycode above by highlighting the text then holding the Command key
down, hit the 'C' key. 2. Launch the SereneScreen Marine Aquarium by
double-clicking on the program icon. 3. Press the spacebar to open the
Register dialog box. 4. Hold the Command key down and hit the 'V' key,
this will copy the Keycode into the program. 5. Press the ENTER key to
complete the registration.

donc ça ne doit pas être le &amp; -> & qui pose problème mais 'C' et 'V'
les ' et ' dont je ne connais pas d'entité, mais je peux changer ça en '
ou " tout court...
--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
unbewusst.sein
Le #23533221
Une Bévue

donc ça ne doit pas être le &amp; -> & qui pose problème mais 'C' et 'V'
les ' et ' dont je ne connais pas d'entité, mais je peux changer ça en '
ou " tout court...



bon j'ai changé les "apostrophes arrondies" en ' tout court... même
erreur, même ligne même colonne...

--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
unbewusst.sein
Le #23533311
Une Bévue

bon j'ai changé les "apostrophes arrondies" en ' tout court... même
erreur, même ligne même colonne...



c'est le & résultant qui posait problème aussi ai-je changé ma
transformation :

& -> &amp;amp; (ainsi j'ai &amp; dans le html)
< -> &amp;lt; (comme avant)
-> &amp;gt; (comme avant)


curly apostrophe gauche -> '
curly apostrophe droite -> '

et là ça roule...
--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
SAM
Le #23534551
Le 05/07/11 09:07, Une Bévue a écrit :

et là ça roule...




Mais ...
n'y a t-il pas une chiée de fonctions PHP pour traiter des caractères ?

http://fr.php.net/manual/fr/function.htmlentities.php

justement pour ne pas avoir à le faire à la main
(ou quasi : preg_replace & cie)




http://fr.php.net/manual/fr/function.html-entity-decode.php
http://fr.php.net/manual/fr/function.htmlspecialchars.php
http://fr.php.net/manual/fr/function.get-html-translation-table.php

et aussi : mb_convert_encoding ?
Ha ! ? pas de MacRoman ?

--
Stéphane Moriaux avec/with iMac-intel
Pierre Goiffon
Le #23534691
On 05/07/2011 09:07, Une Bévue wrote:
c'est le& résultant qui posait problème aussi ai-je changé ma
transformation :

& -> &amp;amp; (ainsi j'ai&amp; dans le html)
< -> &amp;lt; (comme avant)
-> &amp;gt; (comme avant)


curly apostrophe gauche -> '
curly apostrophe droite -> '



Les apostrophes (je suppose qu'il s'agit de U+2018 et U+2019 ??) ne
devraient pas poser problème à priori ?
unbewusst.sein
Le #23534681
SAM
Mais ...
n'y a t-il pas une chiée de fonctions PHP pour traiter des caractères ?

http://fr.php.net/manual/fr/function.htmlentities.php

justement pour ne pas avoir à le faire à la main
(ou quasi : preg_replace & cie)




http://fr.php.net/manual/fr/function.html-entity-decode.php
http://fr.php.net/manual/fr/function.htmlspecialchars.php
http://fr.php.net/manual/fr/function.get-html-translation-table.php

et aussi : mb_convert_encoding ?
Ha ! ? pas de MacRoman ?



Oui mais non, en fait j'ai exporté un fichier d'une application "Web
Confidential" que j'ai au moins depuis Mac OS 9 en un fichier texte tsv
(tab separated values) et ça je l'ai fait une fois pour toute, en ruby.

par contre c'est vari, pour les futures entrées je devrai utiliser les
htmlentities de php, mais je n'en suis pas encore là, ça va viendre
incessament sous peu )))

merci pour ces infos !!!

par contre je ne sais pas trop si php gère bien l'UTF-8...

--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
unbewusst.sein
Le #23534791
Pierre Goiffon

Les apostrophes (je suppose qu'il s'agit de U+2018 et U+2019 ??) ne
devraient pas poser problème à priori ?



effectivement, après essai, il s'avère que c'est inutile...
merci !!!
j'avais fini par m'en douter...

--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
SAM
Le #23534891
Le 05/07/11 15:31, Une Bévue a écrit :

par contre je ne sais pas trop si php gère bien l'UTF-8...



Je pense qu'en ses dernières versions il devrait bien s'en sortir
(ce n'est pas pour travailler avec l'iBook G3 au moins ?)

c'est plutôt entre php et mysql qu'il vaut bien veiller à ce qu'ils se
comprennent
(crois-je)

faut sans doute bien régler les headers
pour communication serveur <--> navigateur
(encore que ... je ne me souviens pas avoir fait de gros efforts de ce
côté sur mon Mac et bien que j'écrive tout en utf-8)

--
Stéphane Moriaux avec/with iMac-intel
Olivier Miakinen
Le #23534951
Le 05/07/2011 15:31, Une Bévue a écrit :

par contre je ne sais pas trop si php gère bien l'UTF-8...



1) Les noms des fonctions standard sont tous en ASCII 7 bits,
donc en UTF-8 sans aucun changement.

2) Les fonctions qui ne font pas de traitement des chaînes de
caractères se foutent du charset utilisé.

3) La plupart des fonctions qui font des traitements de chaînes,
et ont besoin de savoir si c'est du Latin1, du Big5 ou de
l'UTF-8, ont un paramètre permettant de choisir le charset.

4) Même les noms de variables peuvent être en UTF-8 sans problème
(et ce, même si tu as l'imprudence de nommer tes variables
avec des caractères autres qu'ASCII 7 bits).

Et donc, à condition d'éviter les quelques fonctions qui traitent
des chaînes de caractères mais n'ont pas de moyen de spécifier le
charset, tu devrais pouvoir faire ce que tu veux en UTF-8.

Pour être sûr de n'avoir aucun problème, tout d'abord tu dois être
au clair sur toutes tes sources de caractères (fichiers en UTF-8,
paramètres d'accès aux bases de données, déclaration MIME correcte
sur le serveur, etc.)

Et puis aussi, tu dois t'assurer que ton éditeur de texte n'a pas la
stupidité d'ajouter un « BOM » au début des fichiers (trois octets
de valeurs EF BB BF). Si c'est le cas, soit tu trouves une option
pour qu'il ne le fasse pas, soit tu jettes cet éditeur à la poubelle
et tu en prends un autre.

Cordialement,
--
Olivier Miakinen
unbewusst.sein
Le #23535141
Olivier Miakinen
1) Les noms des fonctions standard sont tous en ASCII 7 bits,
donc en UTF-8 sans aucun changement.

2) Les fonctions qui ne font pas de traitement des chaînes de
caractères se foutent du charset utilisé.

3) La plupart des fonctions qui font des traitements de chaînes,
et ont besoin de savoir si c'est du Latin1, du Big5 ou de
l'UTF-8, ont un paramètre permettant de choisir le charset.

4) Même les noms de variables peuvent être en UTF-8 sans problème
(et ce, même si tu as l'imprudence de nommer tes variables
avec des caractères autres qu'ASCII 7 bits).

Et donc, à condition d'éviter les quelques fonctions qui traitent
des chaînes de caractères mais n'ont pas de moyen de spécifier le
charset, tu devrais pouvoir faire ce que tu veux en UTF-8.

Pour être sûr de n'avoir aucun problème, tout d'abord tu dois être
au clair sur toutes tes sources de caractères (fichiers en UTF-8,
paramètres d'accès aux bases de données, déclaration MIME correcte
sur le serveur, etc.)

Et puis aussi, tu dois t'assurer que ton éditeur de texte n'a pas la
stupidité d'ajouter un « BOM » au début des fichiers (trois octets
de valeurs EF BB BF). Si c'est le cas, soit tu trouves une option
pour qu'il ne le fasse pas, soit tu jettes cet éditeur à la poubelle
et tu en prends un autre.



OK, merci beaucoup pour toutes ces précisions, en fait, ça correspond à
ma pratique.

le BOM j'ai eu un pb récemment avec un "vieux" TextWrangler pour MacOS X
Panther, je m'en souviendrai, je l'espère...

--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
Publicité
Poster une réponse
Anonyme