質問: node.at_xpath("//content") end ``` つまり、XMLを//*[contains(title, '承諾')]で検索した結果がリセットされ、//contentで検索した結果がすべて返って来てしまいます。 始めの絞り込み条件を維持したまま、その中のノードを検索・取得するためには、どのように書けば良いのでしょうか? ご教授よろしくお願いいたします。
回答: 自己解決したとのことですがちょっとわかりづらいので回答をつけておきます。 Nokogiri::XML::Documentから検索などで取り出したNokogiri::XML::Nodeに対してさらに検索を掛けた場合、検索条件が相対的な位置指定だった場合にそのノードが起点となる、という動きになります。Nokogiri::XML::Nodeが指すノードをルート要素として取り出したツリーに対して検索がおこなわれるわけではありません。 ですので、 ``` node = doc.at_xpath(...) node.at_xpath('//element') ``` これは ``` doc.at_xpath('//element') ``` と同じになってしまいます。 サブツリーに対して検索するには ``` node = doc.at_xpath(...) node.at_xpath('.//element') ``` とします