Hpricot
Hpricot を試してるんだけど、リンクにポート番号を含んでいるとき、うまくマッチしない。
irb(main):057:0> body = %Q|<a href="http://example.com:3000">example</a>| => "<a href=\"http://example.com:3000\">example</a>" irb(main):058:0> doc = Hpricot(body) => #<Hpricot::Doc {elem <a href="http://example.com:3000"> "example" </a>}> rb(main):060:0> doc/"a[@href^='http://example.com']" => #<Hpricot::Elements[{elem <a href="http://example.com:3000"> "example" </a>}]> irb(main):061:0> doc/"a[@href^='http://example.com:3000']" => #<Hpricot::Elements[]>
あれー? まいったなぁ。":" に何か特別な意味があるのかなー?
追記:
しょうがないのでぶん回して回避。
link_exist = false doc.search(:a).each{|a| link_exist = true if a[:href] == 'http://example.com:3000'}
(doc/:a){|a| ...} でもいいんだけど、なんか気持ち悪いので。