Это также можно сделать с помощью двух операторов XPath:
doc.xpath('//div[position()=1 or position()=3]/table/tr').map {|row| row.xpath('concat(//td[1]," ",//td[2])')}
Причина, по которой это невозможно сделать с помощью одного оператора XPath, заключается в том, что функции String XPath работают только на первом узле набора узлов.,Вы можете сделать выбор узла или объединение, но не оба.
Обратите внимание, что в XPath 2.0 это можно сделать с помощью функции string-join()
, но Nokogiri поддерживает только XPath 1.0.