0

アプリコットを使用すると、CSSセレクターを使用して特定のIDまたはクラスを持つすべての要素を抽出する方法を簡単に確認できます。それらの要素のいくつかの属性がいくつかの正規表現と一致するかどうかに基づいて、ドキュメントから要素を抽出することは可能ですか?

4

1 に答える 1

1

あなたが次のようなことを意味する場合:

doc.search("//div[@id=/regex/]")

それなら私はそれができるとは思いません。別の方法は、すべての要素を見つけてから、結果を繰り返し処理して、正規表現に一致しない要素を削除することです。

result = doc.search("//div")
result.delete_if (|x| x.to_s !~ /regex/)

代替アプローチはたくさんあります。このスレッドには、HpricotとRegularExpressionという2つの提案があります。

一致させようとしているものによっては、 HpricotWikiで利用可能な「サポートされているが異なる」構文を使用できる場合があることに注意してください。

E[@foo$=“bar”] 

「foo」属性値が文字列「bar」で正確に終わるE要素に一致します</p>

于 2009-12-02T14:51:18.107 に答える