如何格式化 Savon 输出到终端的 XML?

发布于 2024-12-28 01:32:21 字数 702 浏览 1 评论 0原文

如何格式化 Savon 输出到 (OSX) 终端的 XML?

我目前把所有内容都弄乱在一行中,这很难阅读。

我想要这样的东西,格式化为多行:

DEBUG -- : <env:Envelope
DEBUG -- :     xmlns:blz="http://thomas-bayer.com/blz/"
DEBUG -- :     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
DEBUG -- :     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
DEBUG -- :     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
DEBUG -- :   <env:Body>
DEBUG -- :     <blz:getBank>
DEBUG -- :       <blz:blz>70070010</blz:blz>
DEBUG -- :     </blz:getBank>
DEBUG -- :   </env:Body>
DEBUG -- : </env:Envelope>

我用谷歌搜索,在这里搜索SO,阅读Savon等的文档和github问题,但无济于事。

有谁知道吗? @rubiii?

How do I format the XML that Savon outputs to the (OSX) terminal?

I currently get everything mangled up in a single line, which is hard to read.

I want something like this, formatted on multiple lines:

DEBUG -- : <env:Envelope
DEBUG -- :     xmlns:blz="http://thomas-bayer.com/blz/"
DEBUG -- :     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
DEBUG -- :     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
DEBUG -- :     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
DEBUG -- :   <env:Body>
DEBUG -- :     <blz:getBank>
DEBUG -- :       <blz:blz>70070010</blz:blz>
DEBUG -- :     </blz:getBank>
DEBUG -- :   </env:Body>
DEBUG -- : </env:Envelope>

I have googled, searched here on SO, read the docs and github issues for Savon etc. to no avail.

Does anyone know?
@rubiii ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅暮の光 2025-01-04 01:32:21

我需要同样的东西,但没有从旧的答案中得到我想要的东西。

Savon 的 SOAP::Response 具有 一个名为 doc 的方法,它返回 Nokogiri::XML::Document。无论我将其写入文件还是使用 puts 将其显示在控制台中,这都为我提供了格式良好的 XML。

client = Savon.client(wsdl: "http://service.example.com?wsdl")
response = client.call(:my_operation)
puts response.doc

I needed the same thing and didn't get what I wanted from the older answer.

Savon's SOAP::Response has a method called doc that returns Nokogiri::XML::Document. This gave me nicely formatted XML whether I wrote it to a file or displayed it in console using puts.

client = Savon.client(wsdl: "http://service.example.com?wsdl")
response = client.call(:my_operation)
puts response.doc
弥枳 2025-01-04 01:32:21

将响应转换为 Nokogiri::XML 对象:

put Nokogiri::XML(response[:foo][:bar])

Transform the response into a Nokogiri::XML object:

puts Nokogiri::XML(response[:foo][:bar])

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文