Nokogiri と XPath を使用して、次の HTML から情報を抽出しようとしています。
<p>Friday, February 1<br><strong>Apple <br> Orange</strong></p>
e.xpath('./text()[following-sibling::br]')
ちゃんと日付を教えてくれます。次に、強力なノード内のテキストを取得し、br で分割します。br で区切られた多くの果物がある場合もあれば、br のない果物が 1 つだけある場合もあります。基本的にJSONを介して一連のパーサーを定義しているため、コードではなくxpathでこれを実現したいと考えています。
今のところトークナイザー機能を使ってストロングタグでテキストを渡そうと考えています。私はそれが次のようになるべきだと思った:
e.xpath('./strong[fn::tokenize(.,"<br>")]')
また、試してみました
e.xpath('fn::tokenize(./strong,"<br>")')
しかし、私は得ています:
.../gems/nokogiri-1.5.6/lib/nokogiri/xml/node.rb:159:in `evaluate': Invalid expression: ./strong/text()[fn::tokenize(.,"br")] (Nokogiri::XML::XPath::SyntaxError)
エラーが発生したメソッドのドキュメント (139 行目) の後に、使用法をモデル化しています。
node.xpath('.//title[regex(., "\w+")]',...