我想解析這個與Nokogiri的HTML,但我卡住了。解析一些棘手的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>
被發現時。如果有人得到線索,我是開放的。
我想解析這個與Nokogiri的HTML,但我卡住了。解析一些棘手的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>
被發現時。如果有人得到線索,我是開放的。
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
最簡單的辦法:
doc.at('b[text()="Tél. : "]').next.text
如果你想確保它的b和下一局之間的一些原因:
doc.at('b[text()="Tél. : "] + br').previous.text
我發現CSS更容易理解很多時候,儘管CSS本身通常不會查看節點的文本,迫使我們使用XPath,但Nokogiri使用jQuery的擴展爲我們提供了一些額外的幫助:
doc.at('b:contains("Tél.")').next_sibling.text.strip
"01 02 03 04 05"
謝謝@sawa的乾淨,抱歉;) – Erowlin 2013-03-09 21:59:19