Ошибка выполения 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();
`


Ответы (3 шт):

Автор решения: Вадим Александру

У вас admin дважды дублируется

define("JOBS_CONFIG_FILE", BASE_FOLDER . "/config/jobs.xml");
→ Ссылка
Автор решения: Александр Срокин

Либо JOBS_CONFIG_FILE содержит некорректный путь, либо xml, которую вы пытаетесь прочитать - не валидная. Проверьте $xml === false на 12 строчке

→ Ссылка
Автор решения: tutankhamun

Ошибка возникает потому что вы пытаетесь вызвать метод не проверяя результат загрузки XML. Видимо загрузка выполнилась с ошибками и $xml имеет значение false. Чтобы разобраться необходимо проверять значение $xml и если там false - выводить в лог значение libxml_get_errors(). Например, можно добавить после вызова simplexml_load_file()

if (!($xml instanceof SimpleXMLElement)) {
    error_log(var_export(libxml_get_errors(), true));
    // Теоретически можно вывести ошибки и через echo, но так делать плохо.
    // Настройка логирования это первое что нужно сделать при установке PHP
}
→ Ссылка