1
私のコードでは、XMLリクエストを作成しています。しかし、この単純な断片は、エラーが発生:Nokogiri XML Builderエラー - > "ドキュメントにルートノードが既にあります"
def create_gateways_request
@request_xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
xml.gateways(:ua => "#{@plugin_name} #{@version}") {
xml.merchant {
xml.account MSP['merchant']['account_id']
xml.site_id MSP['merchant']['site_id']
xml.site_secure_code MSP['merchant']['site_code']
}
xml.customer {
xml.country @customer[:country]
}
}
end
@request_xml.to_xml
end
エラー:
RuntimeError: Document already has a root node
from /Users/scriptdude/.rvm/gems/ruby-1.9.2-p290/gems/nokogiri-1.5.2/lib/nokogiri/xml/document.rb:212:in `add_child'
from /Users/scriptdude/.rvm/gems/ruby-1.9.2-p290/gems/nokogiri-1.5.2/lib/nokogiri/xml/node.rb:549:in `parent='
from /Users/scriptdude/.rvm/gems/ruby-1.9.2-p290/gems/nokogiri-1.5.2/lib/nokogiri/xml/builder.rb:371:in `insert'
from /Users/scriptdude/.rvm/gems/ruby-1.9.2-p290/gems/nokogiri-1.5.2/lib/nokogiri/xml/builder.rb:363:in `method_missing'
from (irb):146
from /Users/scriptdude/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'
from /Users/scriptdude/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'
from /Users/scriptdude/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
ルートノードは、右<gateways>
ですか?
私はここで間違っていますか?
は、私がWebサービスへの正しいXML構造を送信する必要がありますので、私はを取ることができません。 –
サンプルXMLドキュメントに、フォーマットの意味を追加する価値があるかもしれません。 – Jonathan
defayeと同意します。一致するもののXMLサンプルが必要になり、簡単な方法で再現できるようになります。このXMLを構築して私たちに見せるために使用しているすべての変数を取り出してください。 –