Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 检测Rails中是否存在XML节点_Ruby On Rails_Xml - Fatal编程技术网

Ruby on rails 检测Rails中是否存在XML节点

Ruby on rails 检测Rails中是否存在XML节点,ruby-on-rails,xml,Ruby On Rails,Xml,有没有一种简单的方法来检测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

有没有一种简单的方法来检测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时没有问题-我只需要知道如何检测节点是否存在,如果您提供了额外的信息-类似这样的方法可以工作:

if @result && @result['GetProperties'] && @result['GetProperties']['Errors']
如果Hash.from_xml从未返回nil,只需检查这一个的文档,我个人不知道您可以将其简化为:

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

<>最后,如果你认为这有点草率,你可以考虑写一种方法来检查嵌套的属性,比如:

你必须添加更多的细节。@result为nil或@result['GetProperties']为。拥有XML后,将其放入Nokogiri::XML中,并使用xpath_获取节点?什么是结果?等等。目前没有使用任何特定的解析器-我应该这样做吗?编辑我的问题以向您展示@result是什么。您的代码仍然没有说明@result或@result['GetProperties']是否为零。我更相信Nokogiri而不是Hash.from_xml,但那只是我。