当前位置:  开发笔记 > 后端 > 正文

Nokogiri:使用XPath搜索<div>

如何解决《Nokogiri:使用XPath搜索<div>》经验,为你挑选了1个好方法。



1> Javier..:

Mike Dalessio(Nokogiri核心开发人员的一半)给了我答案#nokogiri(irc.freenode.net).看起来Nokogiri CSS和XPath搜索都不支持正则表达式匹配.这是他如何使用Nokogiri搜索正则表达式的解决方案:

require 'rubygems'
require 'nokogiri'

value = Nokogiri::HTML.parse(<<-HTML_END)
  "
    
      

A

B

Bla

C

D

3

3

" HTML_END # my_block is given my_bl = "1" # my_eq corresponds to this regex my_eq = "[0-9]+" # full regex to search for in node ids full_regex = %r(eq-#{my_eq}_bl-#{my_bl}) filter_by_id = Class.new do attr_accessor :matches def initialize(regex) @regex = regex @matches = [] end def filter(node_set) @matches += node_set.find_all { |x| x['id'] =~ @regex } end end.new(full_regex) value.css("div.foo:filter()", filter_by_id) filter_by_id.matches.each do |node| puts node end

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有