Nokogiriを使用してXMLの特定のノードを取得する方法について
Ruby初心者です。よろしくお願いします。
現在Nokogiriを使用してXMLのパースに挑戦しています。
Xpathを使用して取得した結果から、さらにその下のノードを取得する場合はどのようにしたら良いのでしょうか?
以下のようなコードを書くと、本来specified_childrenにはnodeの中にある//*[contains(title, '承諾')]で検索した結果から、さらに//contentで検索した結果が入るかと思うのですが、そうではなく、doc.xpathで絞り込みをした条件がいったんリセットされてしまい、 始めのXMLの状態から検索した結果が返ってきます。
url = "http://example.xom" #urlからxmlを取得
doc = Nokogiri::XML(open(url))
doc.xpath("//*[contains(title, '承諾')]").each do |node|
specified_children = node.at_xpath("//content")
end
つまり、XMLを//*[contains(title, '承諾')]で検索した結果がリセットされ、//contentで検索した結果がすべて返って来てしまいます。
始めの絞り込み条件を維持したまま、その中のノードを検索・取得するためには、どのように書けば良いのでしょうか?
ご教授よろしくお願いいたします。