我正在尝试使用 Nokogiri 和 XPath 从以下 HTML 中提取信息。
<p>Friday, February 1<br><strong>Apple <br> Orange</strong></p>
e.xpath('./text()[following-sibling::br]')
给我日期就好了。然后我想抓取强节点内的文本并在 br 上拆分。可能有许多水果被 br 隔开,也可能只有一个没有 br。理想情况下,我希望在 xpath 而不是代码中完成此操作,因为我本质上是通过 JSON 定义一堆解析器。
现在我在想我应该使用标记器函数并在强标记中传递文本。我认为应该是这样的:
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+")]',...