ruby-on-rails – 在与Savon的SOAP调用中与Nokogiri一起阅读回复
发布时间:2020-12-16 20:49:16 所属栏目:百科 来源:网络整理
导读:我和萨文打了一个肥皂电话.这工作正常,并给予 以下回复: ?xml version="1.0" encoding="utf-8"? soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http:// schemas.xmlsoap
我和萨文打了一个肥皂电话.这工作正常,并给予
以下回复: <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http:// schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetTop10Response xmlns="http://www.kirupafx.com"> <GetTop10Result> <string>string</string> <string>string</string> </GetTop10Result> </GetTop10Response> </soap:Body> </soap:Envelope> 现在我想从响应中取出所有字符串元素.但 def query(params=nil) client = Savon::Client.new do wsdl.document = "http://www.kirupafx.com/WebService/TopMovies.asmx?wsdl" end response = client.request :get_top10 if response.success? xml = Nokogiri::XML(response.to_xml) print "Until here oké!" xml.search('//GetTop10Result').each do |result| print "How are you Ruby?" @result[result.at('string').inner_text] = result.at('string').inner_text end else raise "Error!" end 但是他从来没有打印过我漂亮的“你是红宝石怎么样?”有人可以帮忙吗? 解决方法
你可以这样,但这不是处理这样的问题的最好方法!您可能有使用Nokogiri和XML的经验,但它更容易使用.to_hash这样.
def query client = Savon::Client.new do wsdl.document = "http://www.kirupafx.com/WebService/TopMovies.asmx?wsdl" end response = client.request(:get_top10) response.to_hash[:get_top10_response][:get_top10_result] if response.success? false end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |