2011-03-28 29 views
0

我試圖解析這個ARIN XML文檔。我想獲得orgRef標籤裏面的「名稱」屬性,並沒有做什麼,我希望當我角度來說,Hpricot紅寶石角度來說,Hpricot解析XML文檔ARIN

<?xml version='1.0'?><?xml-stylesheet type='text/xsl' href='http://whois.arin.net/xsl/website.xsl' ?><nets xmlns="http://www.arin.net/whoisrws/core/v1" xmlns:ns2="http://www.arin.net/whoisrws/rdns/v1" termsOfUse="https://www.arin.net/whois_tou.html"><limitExceeded limit="256">false</limitExceeded><net termsOfUse="https://www.arin.net/whois_tou.html"><registrationDate>1998-04-18T00:00:00-04:00</registrationDate><ref>http://whois.arin.net/rest/net/NET-205-188-0-0-1</ref><ns2:delegations termsOfUse="https://www.arin.net/whois_tou.html"><ns2:delegationRef name="188.205.in-addr.arpa.">http://whois.arin.net/rest/rdns/188.205.in-addr.arpa.</ns2:delegationRef></ns2:delegations><endAddress>205.188.255.255</endAddress><handle>NET-205-188-0-0-1</handle><name>AOL-DTC</name><netBlocks><netBlock><cidrLength>16</cidrLength><endAddress>205.188.255.255</endAddress><description>Direct Assignment</description><type>DS</type><startAddress>205.188.0.0</startAddress></netBlock></netBlocks><pocs termsOfUse="https://www.arin.net/whois_tou.html"><pocLinkRef handle="AOL-NOC-ARIN" function="T" description="Tech">http://whois.arin.net/rest/poc/AOL-NOC-ARIN</pocLinkRef></pocs><orgRef name="America Online, Inc" handle="AMERIC-59">http://whois.arin.net/rest/org/AMERIC-59</orgRef><parentNetRef name="NET205" handle="NET-205-0-0-0-0">http://whois.arin.net/rest/net/NET-205-0-0-0-0</parentNetRef><startAddress>205.188.0.0</startAddress><updateDate>1998-04-27T00:00:00-04:00</updateDate><version>4</version></net></nets> 

我這樣做解析它:

doc = Hpricot(contents) 
(doc/:orgRef).each do |orefRef| 
    puts "FOUND ELEMENT!" 
end 

當我做( doc /:net),它輸出的東西,但由於某種原因,它無法找到該單一元素。有任何想法嗎。我也嘗試(doc /:net/orgRef)。這是怎麼回事? ARIN有意讓這個XML無法解析嗎?

+0

我建議考慮引入nokogiri作爲替換對角度來說,Hpricot,應該改變你的初始化後是一個下拉到'doc = Nokogiri :: XML(內容)'。它非常強大並得到很好的支持。 Hpricot在使用XML時遇到了一些問題,包括完全崩潰。我從來沒有像Nokogiri那樣的問題。 – 2011-03-28 05:54:43

+0

謝謝,我想先使用Nokogiri,但是在安裝到我的Mac時遇到了麻煩。涉及體系結構的奇怪的依賴性問題。 – 2011-03-28 15:47:16

+0

我在兩臺Mac和幾臺運行不同發行版的Linux機器上使用它,沒有任何問題。隨意創建一個新問題,我們會看看我們是否可以幫助解決問題。 – 2011-03-28 22:47:01

回答

0

沒關係。我知道了。我不得不這樣做ipWebHost =(DOC /「網/ orgRef」)[0] [「名」]