2014-01-06 54 views
1

有沒有簡單的方法來檢測Rails中是否存在XML節點?檢測XML節點是否存在於Rails中

要獲得@result實例變量我用

response, data = Net::HTTP.post_form(url, params) 
@result = Hash.from_xml(response.body) 

我已經試過:

if @result['GetProperties']['Errors'].exists? 

或只是

if @result['GetProperties']['Errors'] 

但兩者的結果在以下錯誤:

未定義的方法`[]」的零:NilClass

我應該清楚,我沒有問題,解析XML - 我只需要知道如何檢測如果一個節點存在

+0

您必須添加更多的細節。 '@ result'是零或'@result ['GetProperties']'。一旦你有了XML,把它放到'Nokogiri :: XML()'中,並使用'xpath_at'來獲得節點。 – Phlip

+0

您使用的是什麼XML解析器/庫?什麼是'@result?'等 – JKillian

+0

此刻不使用任何特定的解析器 - 我應該做些什麼? – tommyd456

回答

0

考慮您的其他信息 - 像這樣的工作:

if @result && @result['GetProperties'] && @result['GetProperties']['Errors'] 

如果Hash.from_xml不會再回到nil,(只是檢查文檔上這一塊,我本人並不認識),您可以將其簡化爲:

if @result['GetProperties'] && @result['GetProperties']['Errors'] 

最後,如果你認爲這是一種草率的,你可以考慮寫某種方法來一次全部檢查嵌套屬性喜歡這裏:https://stackoverflow.com/a/1820492/3124288

+0

也可以使用預先構建的XML解析器,如Nokigiri http://nokogiri.org/ –

相關問題