【问题标题】:Why does converting Nokogiri XML to JSON with Hash#from_xml remove content?为什么使用 Hash#from_xml 将 Nokogiri XML 转换为 JSON 会删除内容?
【发布时间】:2016-09-22 04:49:55
【问题描述】:

在将 Nokogiri 对象转换为 XML,然后再转换为 JSON 时,大部分内容都消失了。

获取数据并转换的代码:

def get_data
  doc = Nokogiri::HTML(open("<url>", "User-Agent" => "Ruby/#{RUBY_VERSION}"))

  # Get interesting block of HTML
  blurb = doc.css('.entry')

  # Convert Nokogiri object to XML
  xmlBlurb = blurb.to_xml

  # Convert to JSON
  jsonBlurb = Hash.from_xml(xmlBlurb).to_json

  return jsonBlurb 
end

不知何故,在xmlBlurbjsonBlurb 之间,我将从10 多行XML 转换为只有1 个属性的单个JSON 对象{ attr: content }

我知道关于将 XML 转换为 JSON 的 SO 有几个问题,但我阅读的内容都没有解决这个特定问题。

有谁知道什么会导致数据丢失?

【问题讨论】:

  • 请编辑您的问题以包含您期望的输入 XML 和 JSON 输出。另外,Hash.from_xml 是什么?它不是标准的 Ruby 方法,也不是来自 Nokogiri。
  • 您的标题具有误导性。将 XML 转换为 JSON 不会丢失内容,您的代码会丢失内容。阅读“minimal reproducible example”。您的代码没有说明问题,并且您缺少帮助您所需的最少示例输入。

标签: ruby json xml nokogiri


【解决方案1】:

Hash#from_xml 是 Rails 制作的标准库 Hash 类的补充。这种方法被记录为在从 XML 到 Hash 的转换过程中在各种情况下丢失属性很麻烦。

convert XML to ruby hash with attributes”提供了一些建议。

来源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 2017-06-25
    • 2020-09-14
    • 1970-01-01
    • 2022-01-22
    • 2011-03-07
    • 2015-09-27
    相关资源
    最近更新 更多