2012-03-15 12 views
0

外部から生成されたHTMLを処理するためにhpricotを使用しています。 ないは、他のタイプの祖先を持っています(私の場合:PやDIV):hpricot:タイプBまたはCの祖先を持たないタイプAの要素を見つける

最も簡単な(IMG私の場合)1種類の要素を見つけるための方法は何ですか?

私はXPath式//img[not ancestors::div and not ancestors::p]は私が探しているものを行うべきだと思います。残念ながら、hpricotは明らかに先祖の軸をサポートしていません。そして、私が知っている限り、私が使うことができるCSSには "そのような祖先"演算子はありません。

答えて

0

set操作を使用して私の問題を解決しました。私はすべてのAノードを取り出し、祖先がBまたはCのものを引いた。これらのセットは簡単に表現することができ、私の問題は十分に小さく、パフォーマンスやリソースの問題は発生しません。

(doc.search("img") - doc.search("p img") - doc.search("div img")).each do |node| 
    # process node 
end 
関連する問題