我有一些(不是“格式正确”)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,它非常稀疏......显示了一个例子,没有进一步的解释。
这不是世界末日这样做的,但我想要一个更清洁的解决方案。
答案 0 :(得分:2)
@hash = Hash.from_xml("<root>#{xml_data_as_string}</root>")[:root]
需要正确格式化XML数据以进行解析,但这样您只需调用[:root]
一次。确保数据良好或者您会收到错误,要求[:root]
。