Nokogiri XPATH - 根据搜索键获取节点范围

时间:2014-06-13 12:24:57

标签: ruby-on-rails ruby xpath nokogiri

我有一个html文件,其中包含以下段落:

<p> paragraph 1 </p>
<p> paragraph 2 </p>
<p> paragraph 3 </p>
<p> paragraph 4 </p>

现在我想得到上面两段或三段。

下面的代码段只根据我定义的索引返回一个段落。

doc = Nokogiri::HTML(open('test.html'))
p doc.xpath('//p[1][contains(text(), "paragraph")]')

但我想要一系列段落,例如1..2我该如何实现这一目标?感谢

1 个答案:

答案 0 :(得分:1)

使用以下代码

doc = Nokogiri::HTML(open('test.html'))
puts doc.xpath("//p[position() >= 1 and position() <= 3][contains(.,'paragraph')]")

<强>输出

paragraph 1 
paragraph 2 
paragraph 3 

阅读此position()

  

position函数从表达式评估上下文返回一个等于上下文位置的数字。

EqualityExpr