首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法将Nokogiri::XML::Attr转换为string

TypeError:无法将Nokogiri::XML::Attr转换为string
EN

Stack Overflow用户
提问于 2016-05-11 21:14:50
回答 1查看 395关注 0票数 0

我试图抓取一些数据并找到或创建一个Rails对象,代码如下:

代码语言:javascript
复制
@books = @page.xpath(BOOKS_SELECTOR).map { |book| Book.find_or_create_by(name: book.attribute('title'))}

但是,当这段代码运行时,我会得到以下错误:

代码语言:javascript
复制
  1) Error:
ScrapeHelperTest#test_scrape_page_test:
TypeError: can't cast Nokogiri::XML::Attr to string
    app/helpers/scrape_helper.rb:25:in `block in scrape'
    app/helpers/scrape_helper.rb:25:in `map'
    app/helpers/scrape_helper.rb:25:in `scrape'
    test/helpers/scrape_helper_test.rb:11:in `block in <class:ScrapeHelperTest>'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-11 23:28:44

代码语言:javascript
复制
@books = @page.xpath(BOOKS_SELECTOR).map do |book| 
  Book.find_or_create_by(name: book['title'])
end

使用散列访问器,节点上的[]返回属性值,而不是#attribute返回的Nokogiri::XML::Attr节点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37173411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档