【问题标题】:Ruby Hpricot XML Parsing ARIN documentRuby Hpricot XML 解析 ARIN 文档
【发布时间】:2011-03-28 02:19:06
【问题描述】:

我正在尝试解析此 ARIN xml 文档。我想在 orgRef 标记中获取“名称”属性,当我用 Hpricot 解析它时,它并没有达到我的预期

<?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 无法解析?

【问题讨论】:

  • 我建议将 Nokogiri 作为 Hpricot 的替代品,在将初始化更改为 doc = Nokogiri::XML(contents) 后,它应该是一个插件。它非常强大并且得到很好的支持。当我使用 Hpricot 时,它在解析 XML 时遇到了一些问题,包括完全崩溃。我从来没有遇到过 Nokogiri 这样的问题。
  • 谢谢,我一开始想使用 Nokogiri,但在我的 Mac 上安装时遇到了麻烦。涉及架构的奇怪依赖问题。
  • 我在两台 Mac 和几个运行不同发行版的 Linux 机器上使用它,没有问题。随意创建一个新问题,我们会看看是否可以帮助解决这个问题。

标签: ruby xml hpricot


【解决方案1】:

没关系。我知道了。我不得不做 ipWebHost = (doc/"net/orgRef")[0]['name']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多