XPath' start-with'返回零,但元素存在

时间:2016-10-14 20:06:43

标签: ruby-on-rails ruby xpath nokogiri

我有两种Nokogiri::HTML.fragment

<td><a href="somelink?etc...">text</a></td>

<a href="somelink?etc...">text</a> <!-- not wrapped in <td> tag -->

我需要提取以href开头的somelink链接。片段中可以有多个链接,并且somelink属性中并非所有链接都可以包含href

我使用了这段代码:

fragment = Nokogiri::HTML.fragment('<td><a href="somelink?etc...">text</a></td>')
fragment.xpath('.//a[starts-with(@href, "somelink")]')

对于用<td>标记包装的第一种类型的片段,它可以正常工作,但是当我为第二种类型运行此函数时,我得到一个空数组。

当我为第二种类型运行fragment.xpath('.//a')时,我获得了数组中的所有链接,但我仍然需要按href过滤它们。

有人可以解释这种奇怪的行为吗?

0 个答案:

没有答案