У меня есть веб-страница, которую я хотел бы изменить по коду (добавив ссылку на определенные слова).Xpath для выбора узлов без его дочерних элементов
HTML-код:
<div class="section">
<h2>Notre histoire</h2>
<p style="text-align: justify;">SPECIFICS WORDS<strong>1998 : la création</strong></p>
<p style="text-align: justify;">pour objectif « de promouvoir, selon une démarche d’éducation active, auprès des jeunes et à travers eux, des projets d’expression collective et d’action de solidarité » (article 2).<br><br><strong>1999-2001 : les débuts SPECIFICS WORDS</strong></p>
<p style="text-align: justify;">SPECIFICS WORDS<a href="#">SPECIFICS WORDS</a></p>
</div>
Так что моя цель состоит в том, чтобы preg_replace на конкретные слова, а только те, которые находятся в Р, а из из А или STRONG, или любой либо метки.
Я не могу использовать какой-либо класс или любой идентификатор, потому что я не знаю код раньше! Я пробовал функцию preg_replace PHP, но это не сработало и слишком долго исполнялось.
Так что мой вопрос: Как выбрать с XPATh узел без его A, STRONG, IMG chidrens?
Мое первое впечатление заключается в том, что если вы не используете XHTML и можете гарантировать отсутствие специальных символов (например, ' '), у вас возникнут проблемы с обработкой через XPATH, так как это должно было бы подтвердите стандарты XML. Я мог ошибаться, хотя (было известно!) – freefaller
В общем случае выражение XPath для выбора узла, находящегося в A, но не в B, является 'A // node() [not (ancestor :: B)]' Если вы хотите текстовых узлов, вам нужно заменить 'node()' на 'text()'. – biziclop