如何从XML文档中提取Ruby中的XML标记ID及其值

时间:2014-07-28 14:28:46

标签: ruby xml-parsing nokogiri rexml

考虑一个XML文档

<string id = "id1" ><p> Text1 </p></string>
<string id = "id2" > Text2 </string>

我想在ruby中解析这个文档并制作像{id:"Text1", "id2":Text2}

这样的哈希值

我尝试了nokogiri和REXML教程,但没有太大用处。有人可以建议我这样做的方法。

1 个答案:

答案 0 :(得分:1)

在单个xpath查询中无法实现所需的结果。您可以选择并迭代所有字符串节点并提取如下信息:

require 'nokogiri'

doc = Nokogiri::XML(File.open("example.xml"));

result = {}
doc.xpath("//string").each do |node|
    id = node.get_attribute "id"
    text = node.inner_text.strip!
    result[id] = text
end

puts result

输出:

{"id1"=>"Text1", "id2"=>"Text2"}