5

我正在尝试获取 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]

原始链接:在 nokogiri 中的两个元素之间抓取文本?

4

1 回答 1

2

这有效:

doc = Nokogiri::HTML(html)
doc.xpath('//maindeck[1]/text()').map { |n| [n.text.to_i, n.next.text] }
#=> [[1, "Blood Crypt"], [2, "Temple Garden"]]
于 2012-11-04T11:59:35.853 回答