如何使用指针 ID 在 Nokogiri 中搜索元素



在Nokogiri文档中,您可以找到以下内容:

node.pointer_id # internal pointer number

这将以整数形式返回内部指针编号。但是,它没有说明如何使用它来查找节点?

我本来会期待这样的事情:

p_id = node.pointer_id
element = page.with_pointer_id(p_id)

更新。。。让您了解用例。

我正在缓存大量 html 页面作为 Nokogiri 对象并扫描它们以查找特定节点。我保存到哈希的那些节点,以及出现的次数:

{"node1" => 8}

现在它将整个节点保存为键,但是拥有它的标识符会方便得多。在对这些哈希进行聚类后,我想再次检索节点 -> id 应该进来。

您可以使用

通过Nokogiri::XML::D ocument实例提供的 #traverse 方法执行此操作。

这里 #traverse 包装在您的 #with_pointer_id 方法中作为单例。

class Nokogiri::XML::Document
  def with_pointer_id(p_id)
    traverse {|node| return node if node.pointer_id == p_id}
  end
end

现在您可以执行此操作:

element = page.with_pointer_id(p_id)

这将查找具有pointer_id匹配p_id的节点(如果存在)。

相关内容

  • 没有找到相关文章

最新更新