ruby - 在 Nokogiri 中获取元素之间的数据

标签 ruby xpath nokogiri

我正在尝试获取 nokogiri 中两个元素之间的文本,并将数据与它前面的元素中的文本配对。

html  = 
"<website>
    <maindeck>
        1<card>Blood Crypt</card>
        2<card>Temple Garden</card>
    </maindeck>
    <maindeck>
        3<card>Angel of Serenity</card>
        4<card>Forest</card>
    </maindeck>
</website>"

我想以这样的数组结束

#=> [[1,"Blood Crypt"],[2,"Temple Garden"]]

前面的示例提供了这个作为答案,但我不确定它的作用/如何使用它。

/*/div[1]/following-sibling::text()[1]

原文链接:grabbing text between two elements in nokogiri?

最佳答案

这个有效:

doc = Nokogiri::HTML(html)
doc.xpath('//maindeck[1]/text()').map { |n| [n.text.to_i, n.next.text] }
#=> [[1, "Blood Crypt"], [2, "Temple Garden"]]

关于ruby - 在 Nokogiri 中获取元素之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218239/

相关文章:

python - 保存堆栈?

html - Xpath 根据先前的同级文本选择 br 前面的 text()

html - 带有 CSS 问题的 Ruby Nokogiri HTML 抓取表

ruby - 将键盘输入映射到 ruby​​ 中的方法的最佳方法

xpath - 如何在XPath 2.0中将xs:dayTimeDuration转换为毫秒?

xml - XPath查询如何根据两个属性获取一个属性的值

Ruby Mechanize,填充动态表单/发送 JSON(Airbnb 日历)

ruby - Nokogiri 构建器在大型 XML 上的性能?

ruby-on-rails - 尝试使用 RVM 安装 Rails 时如何修复错误

ruby-on-rails - Emacs 中的 Ruby 导航