我正在学习如何使用nokogiri gem在ruby中编程。
doc.xpath("//*[@class='someclass']//@href")
将返回HTML中“someclass”类下的所有href值。
doc.xpath("//*[@class='someclass']").xpath("//@href")
将返回整个HTML中的所有href。
有人可以向我解释一下,有人会如何在xpath中使用//@等价物,例如,在解析的数据中,比如:
doc.xpath("//*[@class='someclass']").xpath(grab all the href within previously parsed)
可能吗?
使用*,@似乎很强大,但我似乎无法缩小范围,除了搜索整个HTML,无论我在哪里使用它。。
作为一个初学者,我只是觉得这会…直觉?能够使用“从任何地方抓取”类型的语法,仅限于之前解析过的语法,以缩小目标范围,因此我可以执行以下操作
xpath(whatever).css(whatever).xpath(whatever)
也许这不是一个好的做法?也许有了对解析概念的更多理解,我就不必这么做了?有时我发现使用xpath和CSS更容易。。
希望有人能启发我。。