2014-09-28 22 views
0

我正在使用網站代理從我們當地的海洋學研究所獲取數據。 Feed可在此處獲得:http://www.geomar.de/service/wetter/feed/獲取正則表達式解析Ruby中的本地天氣信息的困難ruby

Feed內部是一個標籤,其中包含html標記的天氣傳感器內容: Lufttemperatur =氣溫 Wassertemperature =水溫 等

我試圖獲得值爲每個站(例如Lufttemperatur爲站研究所,Wassertemperatur爲站研究所等) 我撥通了rubular.com正則表達式幫助:http://rubular.com/r/INYCQF5Y6H

在rubular我得到一個有效的響應,但在我的紅寶石我得到一個空的[]

我很高興的任何幫助 感謝

+1

你真的應該使用XML解析庫,而不是正則表達式。 – August 2014-09-28 21:29:50

+0

網站代理也可以解析XML,但我無法解析CDATA中的數據......因爲我切換到了文本和正則表達式。 有什麼想法? – ChrisHansen 2014-09-28 21:32:19

+0

無需使用技術知道基爾的天氣,它總是很冷。 – 2014-09-28 21:39:42

回答

1

我是一個建議您使用nokogiri,這是一個出色的xml解析器,但是在查看了xml代碼後,我意識到您正在查找的數據根本不是用xml標籤構建的。這就是爲什麼,對於這個特定的頁面,一個基本的文本研究是比較合適的:

你可以用這種模式獲得的所有鍵/值:

([^:\s<>][^:><]+): ([^<]+) 

online demo

很明顯,你之後需要處理像&deg;這樣的html實體。

+0

@othreed:請注意,你可以像這樣更精確:http://rubular.com/r/6CqI0bJrRP – 2014-09-29 23:19:52

+0

非常感謝你的幫助。這是我第一次在這裏發帖:) 我正在學習你的代碼和試驗。 2天前我做了第一個正則表達式:) – ChrisHansen 2014-09-30 12:31:46

+0

@othreed:rubular是一個很好的工具來爲ruby實驗正則表達式,但是您可以使用regex101.com獲得更多關於模式的信息 – 2014-09-30 13:55:09