0

以下のコードは、次のxmlを生成します。

小さい/大きい記号が「<」または「>」として表示されておらず、サーバーがこれに満足していないことがわかる場合があります。

ヒント/提案をいただければ幸いです。ありがとう!

<env:Body>
<find>
    <filter>&lt;and&gt;&lt;equal name="foo" value="1"/&gt;&lt;/and&gt;</filter>
</find>
</env:Body>


def find 
    s_xml = Builder::XmlMarkup.new
    s_xml.and do
        s_xml.equal(:name => "foo", :value => 1)
    end

    body = {
        :filter => [s_xml.target!],
    }
    _send_query :find, body 
end

def _send_query method, body, server=@primary_server
    client = Savon::client do
        wsdl.endpoint = server
        wsdl.namespace = server
    end

    client.config.pretty_print_xml = true

    response = client.request method do 
        soap.body = body
    end

    return response.to_hash
end
4

1 に答える 1

0

答えは、:: filter!のように感嘆符(アンパサンド@rubiiiではない)を付けます。=> [s_xml.target!]

<<フィルター後!!

于 2012-08-31T19:25:16.203 に答える