2014-11-05 111 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 I,E ID,我應該得到是問題1其父節點。我使用的是引入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