给出XML数据:
<questionpaper>
<question1>
<id>540<id>
<content>....</content>
</question1>
<question2>
<id>550<id>
<content>....</content>
</question2>
.
.
.
<question10>
<id>560<id>
<content>....</content>
</question10>
如果我给540 i,e id,我应该得到它的父节点是question1。我正在使用nokogiri并尝试过
@qpid = Qpaper.find(params[:id])
file = File.open(@qpid.qpaper_file)
xml = Nokogiri::XML(file)
quest = xml.search("//id[text()= '#{params[:qno]}']") //params[:qno] gives id
render text: quest.parent
给出错误
undefined method `parent' for #<Nokogiri::XML::NodeSet:0xe603890>
请帮我解决。谢谢。
答案 0 :(得分:3)
quest
包含Nokogiri::XML::NodeSet
,而不是Node
。在节点集中的一个节点上调用parent:
quest = xml.search("//id[text()= '#{params[:qno]}']")
render text: quest.first.parent