【问题标题】:Ruby on Rails - Need to Read XML File into an ArrayRuby on Rails - 需要将 XML 文件读入数组
【发布时间】:2025-11-30 20:50:02
【问题描述】:

我正在使用 Ruby on Rails,需要将 xml 文件的内容读入数组?

我使用以下方法从 API 中提取数据:

     uri = URI.parse("myAPIurl.com&show=storeID,name")
    http = Net::HTTP.new(uri.host, uri.port)
 request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)

寻找一种精益方法来使用 Ruby on Rails 将此 xml 文件迭代到一个数组中。

【问题讨论】:

    标签: ruby-on-rails ruby arrays xml iteration


    【解决方案1】:

    尝试使用Nokogiri gem。它超级好用,网站上有一些很好的例子。

    require 'open-uri'
    doc = Nokogiri::HTML(open("myAPIurl.com&show=storeID,name"))
    

    然后您可以使用 xpath 或 css 选择器查询您的文档。然后它返回一个 NodeSet,您可以像使用数组一样对其进行迭代

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      对于简单的用例,您可以使用:

      xml = <<-XML
        <?xml version="1.0" encoding="UTF-8"?>
          <hash>
            <foo type="integer">1</foo>
            <bar type="integer">2</bar>
          </hash>
      XML
      
      hash = Hash.from_xml(xml)
      # => {"hash"=>{"foo"=>1, "bar"=>2}}
      

      Hash - Ruby on Rails

      【讨论】: