2009-09-08 3 views
3

Je suis en train de consommer de l'ancien code XML avec des éléments comme celui-ci dans JRuby (hpricot?):Parse XML avec JRuby avec des balises comme <foo.bar>

<x-doc attr="value"> 
    <nested> 
    <with.dot>content</with.dot > 
    </nested> 
</x-doc> 

Je travaille avec hpricot, mais HTML- de hpricot raccourcis orientés travaillent contre moi: doc.search("//with.dot") semble être à la recherche <with class="dot" />

(je suis tombé sur ce problème avec JQuery aussi, il y a quelques années.)

Puis-je faire avec hpricot, ou dois-je utiliser une bibliothèque différente?

+0

Quelqu'un a posté (puis supprimé) une réponse suggérant que j'utilise simplement des outils Java natifs pour cela. Je pouvais le faire, mais j'espérais rester avec Hpricot pour son API plus simple. Je pourrais aussi abandonner JRuby et utiliser du Java pur, mais j'expérimente des façons de manipuler XML avec quelque chose de plus léger et facile à changer avec seulement un éditeur de texte. (Pas de recompiler/déployer, car mon système cible a un JRE mais pas de JDK.) –

+0

Il semble que ce soit un bug avec Hpricot. Dans cette situation, je serais tenté de faire une recherche et de remplacer "with.dot" avant de pouvoir utiliser Hpricot. Vous pourriez le retourner à son état précédent après que vous ayez fini de faire ce que vous voulez avec Hpricot. – atomicules

Répondre

1

Découvrez nokogiri. Il est dit être "Un analyseur HTML et XML plus rapide et mieux pour Ruby (que Hpricot)".

+0

Merci - c'est génial de voir que doc.search ("// with.dot") fonctionne correctement dans Nokogiri. Malheureusement, cela ne fonctionne pas sur ma plate-forme cible, qui n'a aucun paquet -dev (ni même un compilateur) installé. –

+1

Il semble maintenant que Nokogiri travaille sur Jruby: http://stackoverflow.com/questions/1811864/possible-to-load-nokogiri-in-jruby-without-installing-nokogiri-java et http: // stackoverflow. com/questions/1448512/comment-utiliser-nokogiri-de-jruby-on-windows – atomicules

Questions connexes