在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的节点(如果存在)。