1
我的HTML結構使用引入nokogiri獲取兩個標記之間的文本
<div class="line">
<h2>Header</h2>
<h3>Mailing Address</h3>
2349 Glorem ipsun lorem ipsum CA 95833<br>
<br>
Phone: 111-111-2111 Fax: 111-511-1111<br>
<a onfocus="blur()" target="_blank"" href="">some text</a><br>
<a onfocus="blur()" target="_blank" href="">some address</a><br>
<div><p></p></div>
<h3>Contact(s)</h3>
</div>
的HTML頁面包含幾個<div class=line></div>
元素。對於每個div我需要提取電話和傳真與其他數據的數組。我試過使用
doc.css("div#ctl00_cphContent_divBrowseByMember").each do |div|
div.css("div.line").each do |line|
line.xpath('//text()[preceding-sibling::br and following-sibling::a]').text.strip
end
end
它什麼都不返回並返回超時錯誤。 如果我嘗試 line.xpath('//text()[preceding-sibling::br and following-sibling::a]')[0].text.strip
將返回所有其他div相同的電話和傳真。請建議任何其他解決方案,這將幫助我。
謝謝。它的工作原理 – Raji 2012-07-14 10:47:09
不客氣:) – pguardiario 2012-07-14 11:29:18
根據你的問題,使用正則表達式來解析HTML/XML是愚蠢的錯誤。我不知道你是否可以控制這個文檔的HTML,但是如果你正在處理一個表格行,解析會更容易和更一致。這個HTML格式不好的線索是它有' '在裏面。多個「
」也是一個不好的跡象,往往不是。 – lyonsinbeta 2012-07-14 14:06:16