我有两种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
过滤它们。
有人可以解释这种奇怪的行为吗?