У меня в скрипте иногда возникает следующая ошибка
PHP Fatal error: Call to a member function getAttribute() on a non-object in btl.php on line 18
Я знаю что атрибут в xml файле существует, проверял. Ошибка возникает не всегда и я не понимаю почему. Как поправить?
Часть кода:
$doc = new DOMDocument; // файл боя
$doc->loadXML("<root>".$f."</root>");
$battle = $doc->getElementsByTagName('BATTLE');
$info = $battle->item(0)->getAttribute('note'); // line 18, здесь ошибка возникает
Часть xml файла $f:
<BATTLE t="45" t2="45" new_battle="1" turn="1" cl="0" k="6" f="D" note="173,179,1281354356">
...
</BATTLE>
Спустя 24 минуты, 14 секунд (9.08.2010 - 19:38) uMnepaTop написал(а):
мм, судя по названию тега "BATTLE" думаю, что между этими тегами ссылка на на какой нить бой, какой нить игрушки..
если это так, то эта ссылка на бой, обычно пропадает, когда боя нет
зы: а что за игрушка?
если это так, то эта ссылка на бой, обычно пропадает, когда боя нет

зы: а что за игрушка?
Спустя 33 минуты, 53 секунды (9.08.2010 - 20:12) linker написал(а):
Ошибка возникает потому, что
$doc->getElementsByTagName('BATTLE');возвращает null, но т.к. не существует проверки возвращаемого результата, имеем ошибку.
Спустя 9 минут (9.08.2010 - 20:21) Guest написал(а):
linker, а почему возвращает null, если элемент существует?
Спустя 4 минуты (9.08.2010 - 20:25) linker написал(а):
Guest
Никто не мешает тебе проверить, либо так
Никто не мешает тебе проверить, либо так
echo $f;либо так
if (!($battle->item(0) instanceof DomElement)) echo "Ничего мне не вернули.";
Спустя 40 минут, 36 секунд (9.08.2010 - 21:05) Guest написал(а):
В файле $f есть элемент BATTLE, почему линкер его не находит?
Проверку сделаю, но Крону в след. придется тот же файл анализировать, а не переходить к следующему. И так и будет крутиться на месте и пытаться найти этот BATTLE и не находить, хотя он есть.
Проверку сделаю, но Крону в след. придется тот же файл анализировать, а не переходить к следующему. И так и будет крутиться на месте и пытаться найти этот BATTLE и не находить, хотя он есть.