Вопрос по строковой функции xpath 'concat'
-
Всем привет!
Есть некоторый сайт вот с таким кодом:
<table> <tbody> <tr> <td>ТЕКСТ 1</td> <td>ТЕКСТ 2</td> <td></td>
Мне нужно забрать ТЕКСТ 1 и ТЕКСТ 2, но так, чтобы получилось "ТЕКСТ 1 + ТЕКСТ 2", то есть надо эти значения не только взять, но и поставить между ними знак "+".
Я пробовал через Xpath функцию concat, типа такого "//table[concat(//tbody//tr/td[1],'+',//tbody//tr/td[2])]", но ничего не получилось. Отсюда вопрос, может кто знает, в чем ошибка? И можно ли вообще в данном случае использовать такую строку для извлечения данных?
-
Бери по одной, и клей через переменные - установить значение.
А конкотинейт, сдается мне подъедет вместе с xpath 2.0ps: сдается мне там и синтаксис другой
https://developer.mozilla.org/en-US/docs/Web/XPath/Functions/concat
-
@Bigma да костылей можно много придумать, тут нюанс в том, что таких "ТЕКСТ 1" много, то есть есть "ТЕКСТ 2", "ТЕКСТ 3", "ТЕКСТ 4" и тд. Все костыли сделают ненужную нагрузку. .
-
Попробуй тейбл во внутрь каждого пихнуть
https://stackoverflow.com/questions/21996965/concatenate-multiple-node-values-in-xpath
-
@Вениамин синтаксис должен быть примерно таким
concat((//li/text())[1],(//li/text())[2])
В басе для извлечения текста со странице - вроде не работает.
Может через модуль Xpath из переменной.
Сначала протестируй в обычном хроме с каким нить хелпером типо этого
https://chrome.google.com/webstore/detail/xpather/gabekepgockchhemajjahpchlnkadiac?hl=enа потом уже в бас его
-
This post is deleted!
-
@Bigma ну я сделал по-колхозному, получил список одних значений, потом список других значений и дальше через функции объединял. Коряво, но задачу решил.
А так вопрос остается открытым, так как я уже не впервые с такой проблемой сталкиваюсь и костыли при большом количестве значений тормозят скрипт. Терпимо, но хочется лучше :)