2009-09-08 9 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