Forum Programmation.ruby rexml

Posté par  .
Étiquettes : aucune
0
21
nov.
2004
J'ai quelques soucis avec l'utilisation de REXML ( http://www.germane-software.com/software/rexml/(...) ). En effet lorsque je parse un flux xml qui contient des erreurs d'encodage utf-8, le parser m'envoit bouler alors que j'utilise pourtant le mode stream ou sax2.
Le problème arrive si je fourni au parser une variable qui a été rempli via une requette http get (la variable ne contient que le body, pas les headers)
Si je fourni au parser ce même fichier en local, rexml parse bien le fichier et s'arrête dès qu'il trouve une erreur, ce qui me convient.
Voir mon code ici :
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/120467(...)

Il est surprenant qu'avec le même code et la même donnée, je n'obtienne pas le même résultat.

Pour l'instant la solution est de copier le fichier en local et ensuite de le parser. Le problème c'est que la taille du fichier peut très bien grossir, et un utilisateur avec une petite connexion sera fortement pénalisé. Je voudrais donc parser le xml à mesure que je le récupère.
De plus cela permettra à l'utilisateur d'arréter l'opération au milieu du dl, mais le parser aura pu quand même faire son travail sur la partie téléchargé, et mon interface affichera une partie des données.

A vrai dire je ne sais même pas si c'est possible à faire dans un autre langage (C, python ...) mais je suis prêt à changer de lib (libxml2,...) si je trouve un exemple.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.