Xpath вставка "," после каждого li - PullRequest
0 голосов
/ 12 марта 2020

У меня есть кусок кода и XPath для его экспорта. код:

<div class="container-fluid">
  <ul class="tags expandable">
    <li><a class="search__link" href="domain.com">office</a></li>
    <li><a class="search__link" href="domain.com">space</a></li>
  </ul>
</div>

и Xpath:

//ul[contains(concat (" ", normalize-space(@class), " "), " tags expandable ")]

эти данные экспорта Xpath выглядят так: «офисное пространство», но я хочу вставить «,» после каждого файла и я хочу экспорт, как это: «офис, пространство»

1 Ответ

0 голосов
/ 12 марта 2020

Вы должны использовать что-то подобное с XPath 1.0:

translate(normalize-space(//ul)," ",",")

возвращает "офис, пространство".

Чтобы добавить последнюю кому:

concat(translate(normalize-space(//ul)," ",","),",")

XPath check

возвращает «офис, помещение».

РЕДАКТИРОВАТЬ: С помощью ссылки на веб-сайт, которую вы разместили, используйте эту однострочную строку, чтобы получить то, что вы хотите:

translate(normalize-space(//div[@class="container-fluid"]/ul)," ",",")

Вывод:

People,Space,Women,Friends,Communication,Group,Support,Community,Beautiful,Unity,Gender,Movement,Gathering,Copy,Rights,Feminist,Empower,Supporting,Copy,space,Empowering

Это все еще нуждается в некоторых исправлениях (удалите нежелательные "," между копией и пробелом). Если вам нужно что-то полностью автоматическое c и поскольку вам нужно использовать XPath 1.0 (без функции замены), вы можете попробовать:

translate(normalize-space(translate(//div[@class="container-fluid"]/ul," ",""))," ",",")

Вывод (пространство копирования теперь объединено):

People,Space,Women,Friends,Communication,Group,Support,Community,Beautiful,Unity,Gender,Movement,Gathering,Copy,Rights,Feminist,Empower,Supporting,Copyspace,Empowering

В противном случае просто используйте:

//ul[@class="tags expandable"]//a/text()

И добавьте запятые с нужным вам языком программирования.

...