Как мне отформатировать XML, который Savon выводит на терминал? - PullRequest
1 голос
/ 20 января 2012

Как мне отформатировать XML, который выводит Savon на терминал (OSX)?

В настоящее время я выкладываю все в одну строку, которую трудно прочитать.

Я хочу что-то вроде этого, отформатированное в несколько строк:

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, читал документы и проблемы с github для Savon и т. Д. Безрезультатно.

Кто-нибудь знает? @rubiii?

Ответы [ 2 ]

1 голос
/ 23 февраля 2015

Мне нужно было то же самое, и я не получил того, что хотел от более старого ответа.

У Савона SOAP::Response есть метод с именем doc , который возвращает Nokogiri::XML::Document.Это дало мне красиво отформатированный XML, независимо от того, записал ли я его в файл или отобразил в консоли, используя puts.

client = Savon.client(wsdl: "http://service.example.com?wsdl")
response = client.call(:my_operation)
puts response.doc
0 голосов
/ 20 января 2012

Преобразуйте ответ в объект Nokogiri :: XML:

ставит Nokogiri :: XML (ответ [: foo] [: bar])

...