Я могу использовать Regex в выражении XPath?

Ничего не видно. Страница пуста и белая.

Также известна как Белая страница смерти или Белый экран смерти . Это происходит, когда отчет об ошибках отключен, и произошла фатальная ошибка (часто синтаксическая ошибка).

Если вы включили протоколирование ошибок, вы найдете конкретное сообщение об ошибке в своем журнале ошибок. Обычно это будет в файле php_errors.log, либо в центральном месте (например, /var/log/apache2 во многих средах Linux), либо в самом каталоге самого скрипта (иногда используется в среде совместного размещения).

Иногда может быть более простым временно отображать ошибки. На белой странице отобразится сообщение об ошибке. Будьте осторожны, потому что эти ошибки видны всем, кто посещает веб-сайт.

Это легко сделать, добавив в начале скрипта следующий код PHP:

ini_set('display_errors', 1); error_reporting(~0);

Код включит отображение ошибок и установит отчетность на самый высокий уровень.

Поскольку во время выполнения ini_set() он не влияет на синтаксические ошибки синтаксиса. Эти ошибки появятся в журнале. Если вы хотите также отобразить их на выходе (например, в браузере), вам необходимо установить директиву display_startup_errors на true. Сделайте это либо в php.ini, либо в .htaccess или любом другом методе, который влияет на конфигурацию перед временем выполнения .

Вы можете использовать те же методы для установки параметра log_errors и error_log , чтобы выбрать ваше собственное место в файле журнала.

Если вы посмотрите в журнале или используете дисплей, вы получите гораздо лучшее сообщение об ошибке и строка кода, где ваш скрипт останавливается.

Похожие вопросы:

Связанные ошибки:

59
задан Dan Atkinson 2 October 2013 в 18:44
поделиться

4 ответа

Как другие ответы отметили, , XPath 1.0 не поддерживает регулярные выражения .

, Тем не менее, у Вас есть следующие опции :

.//div
   [starts-with(@id, 'foo') 
  and 
   'foo' = translate(@id, '0123456789', '')
  and
   string-length(@id) > 3   
   ]
91
ответ дан Dimitre Novatchev 24 November 2019 в 18:18
поделиться

XPath 2.0 имеет некоторые функции, которые поддерживают регулярные выражения: matches(), replace(), tokenize().

В XPath 1.0 нет никакой поддержки regex.

Для.NET можно использовать механизм XPath в саксе. Сеть для имения поддержки XPath 2.0.

Так, при использовании механизма XPath 2.0 в Saxon.NET, пример обратился бы к: .//div[matches(@id,'foo\d+')].

28
ответ дан the Tin Man 24 November 2019 в 18:18
поделиться

В.NET у Вас есть способность получить доступ к Вашим пользовательским классам (и поэтому regex, если можно кодировать его соответственно для потребностей) через Дополнительные Объекты.

Учебное руководство здесь .

2
ответ дан annakata 24 November 2019 в 18:18
поделиться

Я тоже хотел это сделать, поэтому создал свой собственный базовый модуль xpath .

0
ответ дан 24 November 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: