gpt4 book ai didi

ruby-on-rails - 使用 Nokogiri 从与 Savon 的 SOAP 调用中读取响应

转载 作者:行者123 更新时间:2023-12-04 03:34:51 25 4
gpt4 key购买 nike

我和Savon打了个肥皂电话。这工作正常,并给
以下回应:

<?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

但他从不打印我美丽的“你好,Ruby?”有人可以帮忙吗
我?我做错了什么?

最佳答案

您可以这样做,但这不是处理此类问题的最佳方法!您可能有使用 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

关于ruby-on-rails - 使用 Nokogiri 从与 Savon 的 SOAP 调用中读取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com