2010-10-25 4 views
0

je rencontre un problème étrange incroyable:libxml fait une différence entre « et »

L'analyseur libxml J'utilise fait une différence entre « et ».

Y en a-t-il un? L'attribut suivant fait l'erreur:

name="New Headway_the third edition"

si je remplace le « caractère avec le » je rentre avec mon tout clavier fonctionne très bien ... Je allready prouvé, qu'il n'y a pas seulement deux caractères 'à côté de chaque autres ... l'analyseur renvoie l'erreur suivante:

:72: parser error : invalid character in attribute value 
<TopCont id="1197" name="New Headway_the thir... 
         ^

la chose vraiment étrange est que l'attribut provient d'un service Web qui ne fonctionne bien exepté son TopCont ... les personnages d'une manière très normale !

Merci pour votre aide, Markus

+0

pouvez-vous expliquer la différence entre les caractères? – shingara

+0

si je copie l'attribut de ce post et le passe dans mon fichier xml, alors cela fonctionne ... – Markus

+0

@shingara: c'est en fait ma question! mais ça fait vraiment une différence pour l'analyseur syntaxique libxml – Markus

Répondre

2

Le premier est un "- code ascii 34 -. C'est la Guillemet valide à utiliser dans un fichier XML

L'autre est une sorte de double guillemet ouvert (ou double guillemet, je ne peux pas dire) Le fait qu'il ressemble tout à fait au caractère avec le code 34 est sans importance du point de vue des analyseurs XML

L'analyseur n'acceptera que " (34) comme une citation. Vous ne pouvez pas utiliser tout autre caractère et attendre que cela fonctionne - il est comme tout en utilisant tout autre caractère au hasard et attendre à un sens:

<TopCont id="1197" name=¢New Headway_the thir... 

La seule raison pour laquelle vous êtes confus parce que « et » look la même chose à un humain; l'analyseur ne se préoccupe que son code de caractère :)


NB Il est très étrange qu'un service Web retourne les deux types de citation - cela me dit que quelqu'un aurait pu couper-coller à partir d'un autre endroit à savoir Word? Qu'est-ce que le service Web?

+0

Salut deanWombourne, bonne réponse! Merci beaucoup! Y at-il une possibilité comment je peux enlever ces caractères inconnus? Je cherche une méthode plus claire dans les rails ou dans activecript (flex) Une idée? – Markus

+0

Ma première suggestion serait d'envoyer un courriel au fournisseur du service Web et de leur dire qu'ils le font mal! A défaut, vous pouvez écrire un gestionnaire d'erreur qui, en cas d'échec de l'analyse XML, verra le caractère qui l'a fait échouer et le remplacer par le bon (en utilisant une table de recherche, par exemple, remplacer guillemets doubles par ascii). – deanWombourne