我在尝试使用库将 XML 文件解析为类似对象的哈希,修改它,然后将其打印回 Ruby 中的另一个 XML 文件时遇到了很糟糕的事情。对于我正在学习的课程,我们应该使用类似 Java JAXB 的库,在其中我们将 XML 转换为对象。我们已经完成了 SAX 和 DOM 方法,因此我们不能使用这些 XML 反序列化方法。Nokogiri 在 Ruby 中帮助我解决了这两个问题。
唯一的问题是,除了我对对象进行的简单修改之外,当我写入文件时,它有很大的不同。是否有专门用于执行此操作的 Ruby 库?我尝试过:ROXML、XML::Mapping 和 ActiveSupport::CoreExt。我唯一可以运行的是 ActiveSupport,即使这样,它也会开始将元素属性作为子元素放入输出 XML 中。
我愿意尝试 XmlSimple,但我很好奇有没有人真的必须这样做之前/遇到同样的问题?同样,我不能像 SAX 那样一次读取一行,也不能像 DOM 那样构建树状结构,它需要是像对象一样的散列。
任何帮助深表感谢!