Pour le code source à jour de ce module: http://svn.cs.brynmawr.edu/viewvc/Pyjama/trunk/IronPython/Lib/xml/sax/saxutils.py?view=markup&pathrev=9 ou (version 3) http://www.opensource.apple.com/source/python/python-3/python/Lib/xml/sax/saxutils.py ou https://vmi.lmt.ei.tum.de/projects/ros/browser/trunk/vmi_cognitive_environment/ce_skype/src/sky2ros/Student/client/xml/sax/saxutils.py
Ce codage de quoteattr() est correct et n'oublie pas "&", puisqu'il utilise escape() en interne, qui remplace systématiquement ce caractère. Le 10 février 2012 12:58, Philippe Verdy <verd...@wanadoo.fr> a écrit : > Note, la doc Python du module SAX est là: > > http://docs.python.org/library/xml.sax.utils.html > > Elle précise bien que quoteattr() doit normalement encoder les mêmes > caractères que: > > xml.sax.saxutils.escape(data[, entities]) > > sans même avoir à passer un tableau entities (les caractères "&", "<" > et ">" sont inclus par défaut), mais quoteattr() ajoute les guillemets > (") et apostrophes ('), sans retirer pour autant le caractère "&" des > entités de substitution définies par défaut. > > Visiblement c'est un problème de version du module "xml.sax.saxutils" > que tu utilises (il faut une version 2.2 ou supérieure de Python pour > avoir cette fonction). Note bien que quoteattr() a été conçu pour HTML > ou SGML, pas pour la conformité XML ou XHTML (la conformité XML vient > avec la version 2.3 il me semble, sinon il te faut passer un paramètre > entities ; Python est actuellement en version 2.7) > > > Le 10 février 2012 12:45, Philippe Verdy <verd...@wanadoo.fr> a écrit : >> A mon avis le bogue est surtout à corriger dans la fonction >> quoteattr() du module Python "sax.saxutils". >> >> Car ***même*** en HTML ou SGML (au lieu de XML ou XHTML) il faudrait >> systématiquement recoder un "&" présent dans une valeur qu'on veut >> encapsuler dans un attribut d'élément HTML (ou XML). Tout parseur HTML >> ou SGML reconnait "&" automatiquement (sans avoir besoin de >> définir l'entité), mais ***tolère*** (par compatibilité ascendante >> avec les très vieux navigateurs HTML, d'avant même HTML4) des valeurs >> contenant des entités mal codées (dans ce cas un parseur HTML a un >> "fallback" lui permettant de réinterpréter la valeur donnée sans faire >> le décodage des entités, mais PAS un parseur XML qui s'y refuse, car >> c'est un trou de sécurité). >> >> Le code d'Osmose visiblement l'oublie quand il génère aussi d'autres >> URLs "en dur" à d'autres endroits de la page HTML du frontend (mais ce >> frontend est codé pour générer du HTML, pas du XHTML, ce qui autorise >> le "fallback" pourtant pas recommandé du tout et dangereux). >> >>>> Mon dépôt osmose sur gitorious n'est pas vraiment une référence. >>>> Regardes plutôt la branche dev de http://gitorious.org/osmose pour la >>>> version de développement. _______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr