考虑一个XML文档
<string id = "id1" ><p> Text1 </p></string>
<string id = "id2" > Text2 </string>
我想在ruby中解析这个文档并制作像{id:"Text1", "id2":Text2}
我尝试了nokogiri和REXML教程,但没有太大用处。有人可以建议我这样做的方法。
答案 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"}