В целях автоматической замены ключевых слов ссылками на основе списка пар «ключевое слово-ссылка» мне нужно получить текст, который еще не связан, не является сценарием или исключен вручную, внутри абзацев (p) и элементов списка (li) -- для использования в модуле Alinks Drupal.
Я изменил существующий селектор xpath следующим образом и хотел бы получить отзыв о нем, если он эффективен или может быть улучшен:
//*[p or li]//text()[not(ancestor::a) and not(ancestor::script) and not(ancestor::*[@data-alink-ignore])]
xpath предназначен для работы с любым содержимым html5, а также с самозакрывающимися тегами (не правильно сформированными xml) - так был разработан модуль, и он работает довольно хорошо.