Ошибка выполения php, как можно исправить?

Подскажите откуда может быть ошибка? При запуске выдает ошибку:

PHP Fatal error: Uncaught Error: Call to a member function xpath() on boolean in /home..../executeSimJob.php:13
Stack trace: #0 {main} thrown in /home/......../executeSimJob.php on line 13


// путь
define("BASE_FOLDER", __DIR__ ."/admin");

// идентификатор 
$jobId = "sim";

// код
define("JOBS_CONFIG_FILE", BASE_FOLDER . "/admin/config/jobs.xml");
include(BASE_FOLDER . "/admin/config/global.inc.php");
$xml = simplexml_load_file(JOBS_CONFIG_FILE);

$jobConfig = $xml->xpath('//job[@id = \''. $jobId . '\']'); //это 13 строка

$jobClass = (string) $jobConfig[0]->attributes()->class;

$i18n = I18n::getInstance($website->getConfig("supported_languages"));
$job = new $jobClass($website, $db, $i18n, $jobId);
$job->execute();
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Там же написано откуда: executeSimJob.php:13, то есть в файле executeSimJob.php на строке №13

Давай я отнесу это в гугл-транслейт за тебя:
Неперехваченная ошибка: вызов функции-члена xpath () для логического значения


То есть у вас там boolean, у него естественно нет метода xpath()

Осталось открыть документацию, и прочесть, почему вообще simplexml_load_file() может вернуть boolean.

И там про ошибки отдельно написано.
Ответ написан
@dzhebrak
simplexml_load_file возвращает false в случае возникновения ошибки.

Проверить, в чем именно проблема можно так:
foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
}

https://www.php.net/manual/ru/simplexml.examples-e...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы