0

この html を Nokogiri で解析しようとしていますが、行き詰っています。

<b>Dudule Francis</b>
<br>
<b>Tél. : </b>
01 02 03 04 05
<br>
<b>Fax : </b>
10 90 80 70 60

最初の電話番号を抽出したいと思い01 02 03 04 05ます。</b>とと の間にあるのは が発見された<br>ときだけです。<b>Tél. : </b>誰かが手がかりを得た場合、私はオープンです。

4

3 に答える 3

3
noko = Nokogiri::HTML(html_text)
noko.xpath("//b[text() = 'Tél. : ']").each do |b|
  puts b.next_sibling.content.strip
end
# 01 02 03 04 05
于 2013-03-09T22:09:07.507 に答える
1

簡単な方法:

doc.at('b[text()="Tél. : "]').next.text

何らかの理由で b と次の br の間にあることを確認したい場合:

doc.at('b[text()="Tél. : "] + br').previous.text
于 2013-03-09T23:28:14.883 に答える
1

多くの場合、CSS の方が理解しやすいと思います。通常、CSS 自体ではノードのテキスト内を調べることができないため、XPath を使用する必要がありますが、Nokogiri は jQuery の拡張機能を使用して追加のヘルプを提供します。

doc.at('b:contains("Tél.")').next_sibling.text.strip
"01 02 03 04 05"
于 2013-03-10T15:38:48.520 に答える