ruby-on-rails-3 - Rails 3+ 将 XML 转换为哈希并删除 "root"元素

标签 ruby-on-rails-3 hash xml-parsing

我有一些(不是“格式正确”)的 XML 存储为字符串:

xml_data_as_string = "<first_name>John</first_name><last_name>Smith</last_name>"

我正在尝试将其转换为哈希,以便可以像这样引用它:

@hash[:first_name] # => John

我可以通过以下方式完成此任务:

Hash.from_xml("<root>#{xml_data_as_string}</root>")

from_xml 方法似乎要求 XML 有一个根元素。所以我目前必须将哈希引用为:

@hash[:root][:first_name] # => John

这有点不方便,我想知道是否有一种简单的方法可以实现这一点。我查看了 from_xml 的 API,它非常稀疏...仅显示 1 个示例,没有进一步说明。

这样做并不是世界末日,但我想要一个更干净的解决方案。

最佳答案

@hash = Hash.from_xml("<root>#{xml_data_as_string}</root>")[:root]

XML数据需要正确格式化才能解析,但这样你只需要调用 [:root]一次。确保数据良好,否则您会收到一条错误消息,询问 [:root] .

关于ruby-on-rails-3 - Rails 3+ 将 XML 转换为哈希并删除 "root"元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11746374/

相关文章:

javascript - 为什么我无法在 javascript 中解析 xml?

javascript - 如何在javascript中解析带有 `find`的xml属性?

xml - 使用 CFSCRIPT 获取 xml 属性

ruby-on-rails - rails : check if ID doesn't exist in controller?

ruby-on-rails - 使用acts_as_taggable_on 进行搜索

ruby-on-rails-3 - 在 Ruby on Rails 3/Postgres/Apache Passenger 应用程序中跟踪内存泄漏

ruby-on-rails - Rails 3数据库索引和其他优化

hash - 为什么 SHA-1 被认为是不安全的?

database - 如何根据散列中的键/值查找键/值数据并将其添加到 Redis 中的散列?

python - 为什么没有在Python字典中实现iter.remove?