Выбор элемента XPath, содержащий текст с акцентами или символами

Я хочу выбрать тег элемента / div с помощью XPath (Symfony Dom Crawler):

$element->filterXPath('//span[text() = "SOMEtext"]')->text();

Работает нормально, если в строке нет специальных символов.
Это не будет работать, если строка содержит акценты или символы, такие как: Prénom, expérience, à toi, так далее.

$element->filterXPath('//span[text() = "Référence"]')->text(); дает мне ошибку.

Есть ли способ отфильтровать неанглийский текст?

Я перепробовал много комбинаций, чтобы преобразовать текст в строку Unicode, но это всегда не получается.

Référence
Référence
R\u00E9f\u00E9rence
R\u{00E9}f\u{00E9}rence
R\00E9 f\00E9 rence
R%C3%A9f%C3%A9rence
RU+00E9fU+00E9rence
R0xE9f0xE9rence

0

Решение

Вы не указали, какую реализацию XPath вы используете, и поскольку filterXpath не является стандартным в PHP, первое, что я проверю, это кодирование. Является ли кодировка, в которой сохранен ваш PHP-скрипт, той же кодировкой, которую ожидает объект?

Во-вторых, я бы попробовал использовать стандартную реализацию XPath DOMDocument, но есть и другие реализации.

$oDom = (new DOMImplementation())->createDocument(NULL, '');
// import your DOM here
$XPath = new DOMXPath($oDom);
$XPath->query('//span[text() = "Référence"')->item(0);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]