2009-09-08 10 views
3

我试图消耗像这样的元素一些遗留的XML JRuby中标记(角度来说,Hpricot?):解析XML使用JRuby与像<foo.bar>

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

我一直在使用角度来说,Hpricot,但角度来说,Hpricot的HTML-面向快捷方式正在攻击我doc.search("//with.dot")似乎在寻找<with class="dot" />

(我也一样,几年前就遇到了这个问题与jQuery)

我能做到这一点与角度来说,Hpricot,或者我需要使用不同的库?

+0

有人发布(然后删除)答案,建议我只是使用本机Java工具。我可以做到这一点,但我希望坚持使用Hpricot的更简单的API。我也可以放弃JRuby并使用纯Java,但我正在尝试使用更轻量级的操作XML的方法,并且只需使用文本编辑器即可轻松更改。 (没有重新编译/部署,因为我的目标系统有JRE,但没有JDK。) – 2009-09-10 18:54:47

+0

绝对看起来像是Hpricot的一个bug。在这种情况下,我很想去做一个搜索,然后替换“with.dot”,这样我就可以使用Hpricot了。在完成Hpricot所需的操作后,您可以将其恢复到之前的状态。 – atomicules 2010-01-14 13:15:34

回答

1

结账nokogiri。据说它是“比Ruby更快,更好的HTML和XML解析器(比Hpricot)”。

+0

谢谢 - 很高兴看到doc.search(“// with.dot”)在Nokogiri中正常工作。可悲的是,它不适用于我的目标平台,它没有安装任何-dev软件包(甚至编译器)。 – 2009-09-24 13:55:08

+1

现在看起来好像Nokogiri正在Jruby上工作:http://stackoverflow.com/questions/1811864/possible-to-load-nokogiri-in-jruby-without-installing-nokogiri-java和http:// stackoverflow。 COM /问题/ 1448512 /如何使用的,引入nokogiri从 - JRuby的上窗口 – atomicules 2010-01-14 13:26:22