【发布时间】:2015-10-02 01:32:05
【问题描述】:
我目前正在使用 Savon 在 Ruby 中构建一个 SOAP 客户端,但是当我编写生成 XML 的代码时,我不得不编写:
builder = Builder::XmlMarkup.new
builder.ns :request do
builder.ns :Foo do
builder.ns :FooBar do
builder.ns :Bar, "Foo"
end
end
end
生成
<ns:request>
<ns:Foo>
<ns:FooBar>
<ns:Bar>Foo</ns:Bar>
</ns:FooBar>
</ns:Foo>
</ns:request>
这显然是非常重复的,如果可能的话,我想删除 NS 重复。我还注意到,如果没有 ns,我可以使用大括号,而不是 dos/ends。
有没有办法解决这个问题?我不喜欢没有使用大括号的能力,当我稍后添加元素名称的动态输入时,它可能会使事情变得复杂。
我试过了
def send_builder(requestsym, data=nil)
@@builder requestsym, data
end
但我对块/procs/lambdas 的了解还不足以使其与嵌套元素一起使用。
【问题讨论】:
-
请告诉我,您正在尝试构建您的请求的 XML 对吗?
标签: ruby api soap soap-client savon