【发布时间】:2015-07-03 21:54:30
【问题描述】:
我有一个字符串,其中包含纯文本和额外的空格和回车符,然后是类似 XML 的标签,后跟 XML 标签:
String = "hi there.
<SET-TOPIC> INITIATE </SET-TOPIC>
<SETPROFILE>
<KEY>name</KEY>
<VALUE>Joe</VALUE>
</SETPROFILE>
<SETPROFILE>
<KEY>email</KEY>
<VALUE>Email@hi.com</VALUE>
</SETPROFILE>
<GET-RELATIONS>
<COLLECTION>goals</COLLECTION>
<VALUE>walk upstairs</VALUE>
</GET-RELATIONS>
So what do you think?
Is it true?
"
我想解析这个类似于使用 Nori 或 Nokogiri 或 Ox,它们将 XML 转换为哈希。
我的目标是能够轻松地将顶级标签作为键提取出来,然后了解所有元素,例如:
Keys = ['SETPROFILE', 'SETPROFILE', 'SET-TOPIC', 'GET-OBJECT']
Values[0] = [{name => Joe}, {email => email@hi.com}]
Values[3] = [{collection => goals}, {value => walk up}]
我已经看到了几个类似真正 XML 的函数,但我的所有函数都是部分的。
我开始沿着这条思路走:
parsed = doc.search('*').each_with_object({}) do |n, h|
(h[n.name] ||= []) << n.text
end
【问题讨论】:
标签: ruby xml xml-parsing nokogiri