2014-11-05 2 views
3

Предоставлены данными XML:Получить родительский узел узла в XML- nokogiri рельсах

<questionpaper> 
    <question1> 
     <id>540<id> 
     <content>....</content> 
    </question1> 
    <question2> 
     <id>550<id> 
     <content>....</content> 
    </question2> 
    . 
    . 
    . 
    <question10> 
     <id>560<id> 
     <content>....</content> 
    </question10> 

Если я даю 540, й идентификатор, я должен получить его родительский узел, который 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> 

Пожалуйста, помогите мне решить. Спасибо.

ответ

2

quest содержит Nokogiri::XML::NodeSet, ни одного Node. Вызовите родителя на одном из узлов в наборе узлов:

quest = xml.search("//id[text()= '#{params[:qno]}']") 
render text: quest.first.parent 
Смежные вопросы