Найти узлы, содержащие строку, разделенную на 2 тега - PullRequest
1 голос
/ 26 марта 2019

есть способ получить узлы, содержащие определенную строку, которая разделена на 2 тега. Я пробовал это, но это не работает. Мне не удается игнорировать тег foreign.

$crawler->filterXPath('//p/text()[contains(., "caractère a priori")]');
<p>leur caractère <foreign xml:lang="lat">a priori</foreign>, soit..</p>

Большое спасибо!

1 Ответ

1 голос
/ 26 марта 2019

Следующий XPath должен работать для вас, он вернет только <p> узлы, которые содержат текст, указанный в операторе contains.Я немного расширил пример для тестирования и включил скрипту здесь .

XPath:

div/p[contains(., 'caractère a priori')]

Входные данные

<div>
    <p>leur caractère <foreign xml:lang="lat">a priori</foreign>, soit..</p>
    <p>leur poisson <foreign xml:lang="lat">a priori</foreign>, soit..</p>
</div>

Выходные данные

<p>leur caractère <foreign xml:lang="lat">a priori</foreign>, soit..</p>

Надеюсь, этого достаточно для продолжения!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...