2013-10-25 77 views
1

你能幫我使用生成器寶石簡單的SOAP XML

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <Service> 
      <Source ID="1" Name="A"></Source> 
     </Service> 
    </soapenv:Body> 
</soapenv:Envelope> 

到目前爲止,我結束了這個

builder = Builder::XmlMarkup.new 
builder.instruct!(:xml, :encoding => "UTF-8") 
builder.service { |p| p.source } 

由於構建以下XML!

回答

1

所以,我想出了以下

xml = Builder::XmlMarkup.new 
xml.instruct!(:xml, :encoding => "UTF-8") 

xml.soapenv(:Envelope, {"xmlns:soapenv" => "http://schemas.xmlsoap.org/soap/envelope/" }) do 
    xml.soapenv :Header 
    xml.soapenv :Body do 
     xml.Service do 
      xml.Source('ID' => '1', 'Name' => 'A') 
     end 
    end 
end 
0

你真的需要使用Builder gem嗎?我會建議使用Handsoap等其他寶石。

+0

感謝提醒,但它的東西我不得不忍受:)我的客戶已經生成器集成並使用它,它是必不可少的。 –

+0

Builder gem只是用來構建XML標記。爲了向您的服務提出請求,您需要發出POST請求。在Ruby中查找用於發出POST請求的庫。 – JunaidKirkire

+0

謝謝。我明白那個。目前我只是尋找一些使用Builder的有效例子。 –