【问题标题】:Collect xml response by third party web service通过第三方 Web 服务收集 xml 响应
【发布时间】:2012-02-08 14:33:37
【问题描述】:

我已使用此命令将 xml 文件发送到名为 SRA-ENA 的 Web 服务。

 submission_field = Curl::PostField.content(File.read("xml/#{@experiment.alias}.submission.xml"), 'SUBMISSION')
      study_field = Curl::PostField.content(File.read("xml/#{@experiment.alias}.study.xml"), 'STUDY')
      sample_field = Curl::PostField.content(File.read("xml/#{@experiment.alias}.sample.xml"), 'SAMPLE')
      run_field = Curl::PostField.content(File.read("xml/#{@experiment.alias}.run.xml"), 'RUN')
      experiment_field = Curl::PostField.content(File.read("xml/#{@experiment.alias}.experiment.xml"), 'EXPERIMENT')
      # Send these requests to the test-SRA website
      request_test = Curl::Easy.http_post("https://www-test.ebi.ac.uk/ena/submit/drop-box/submit/?auth=ERA%20era-drop-81%20dxjf2dntWDr4CHg28qERORnv0RQ%3D", submission_field, study_field, sample_field, run_field, experiment_field )

作为回应,我从网络服务器收到了 xml 格式的收据,

请有人指导我如何将此 xml 保存在变量中,以便我可以使用 nokogiri 进一步解析 xml 文件。

【问题讨论】:

    标签: xml http ruby-on-rails-2 curb


    【解决方案1】:

    这是一个使用 Rails 2.3.14 的独立示例,展示了如何使用 nokogiri 解析 XML 结果。

    require 'nokogiri'
    require 'curb' 
    
    # I have included this part so that this serves as a standalone example 
    
    ce = Curl::Easy.new("http://www.myexperiment.org/announcements.xml") 
    ce.perform 
    
    # This is the part that deals with parsing the XML result using nokogiri
    
    doc = Nokogiri::XML::Document.parse(ce.body_str)
    
    doc.xpath("/announcements/announcement").each do |announcement|
      puts announcement.content
    end
    

    【讨论】:

    • 唐,请你告诉我你怎么知道通过路边发送的数据是否正确。我已经按照上面的方法进行了操作,但收到了 HTTP 415 错误。有什么方法可以找到/测试 Curb 结果。
    • 不幸的是,415 响应意味着服务器不喜欢您提供的数据。如果不阅读特定的网络服务或联系运行它的人,就无法知道原因。
    • 亲爱的唐,请你参考这个stackoverflow.com/questions/9227028/… 并建议我在编码方面是否走在正确的轨道上
    • 嗨,唐,对不起,如果我问你一个简单的问题。当我想显示正确的 xml 元素对象时,请您告诉我如何在视图模板中调用属性文档。!谢谢
    猜你喜欢
    • 2012-05-01
    • 1970-01-01
    • 2018-06-12
    • 2014-10-09
    • 2013-06-29
    • 2012-05-23
    • 2012-06-08
    • 2011-02-01
    • 1970-01-01
    相关资源
    最近更新 更多