是否有一种简单的方法可以检测Rails中是否存在XML节点?
要获取@result实例变量,我使用
response, data = Net::HTTP.post_form(url, params)
@result = Hash.from_xml(response.body)
我试过了:
if @result['GetProperties']['Errors'].exists?
或只是
if @result['GetProperties']['Errors']
但两者都会导致以下错误:
未定义的方法`[]'为nil:NilClass
我应该说清楚解析XML没问题 - 我只需要知道如何检测节点是否存在
答案 0 :(得分:0)
鉴于您的其他信息 - 这样的事情会起作用:
if @result && @result['GetProperties'] && @result['GetProperties']['Errors']
如果Hash.from_xml
没有返回nil
,(只是检查一下这个文档,我个人不知道)你可以将其简化为:
if @result['GetProperties'] && @result['GetProperties']['Errors']
最后,如果您认为这有点草率,您可以考虑编写某种方法来同时检查嵌套属性,如下所示:https://stackoverflow.com/a/1820492/3124288