gpt4 book ai didi

ruby - Nokogiri child 法

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:08 26 4
gpt4 key购买 nike

我这里有以下 XML:

<listing>
<seller_info>
<payment_types>Visa, Mastercard, , , , 0, Discover, American Express </payment_types>
<shipping_info>siteonly, Buyer Pays Shipping Costs </shipping_info>
<buyer_protection_info/>
<auction_info>
<bid_history>
<item_info>
</listing>

以下代码可以很好地显示第一个 //listing 的第一个 child 节点:

require 'nokogiri'
require 'open-uri'

html_data = open('http://aiweb.cs.washington.edu/research/projects/xmltk/xmldata/data/auctions/321gone.xml')

nokogiri_object = Nokogiri::XML(html_data)
listing_elements = nokogiri_object.xpath("//listing")

puts listing_elements[0].children[1]

这也有效:

puts listing_elements[0].children[3]

我试图访问第二个节点 <payment_types>使用以下代码:

puts listing_elements[0].children[2]

但是显示了一个空行。通过Firebug一看,明明是listing节点的2nd child。通常,只有奇数才适用于 children 方法。

这是 Nokogiri 中的错误吗?有什么想法吗?

最佳答案

这不是错误,它是在解析包含 "\n"(或空节点)的字符串时创建的空间,但您可以使用 noblanks 选项来避免他们:

nokogiri_object = Nokogiri::XML(html_data) { |conf| conf.noblanks }

使用它,您的数组中将没有空白

关于ruby - Nokogiri child 法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44147778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com