2013-09-18 3 views
1

Я загружаю xml-файл и получаю доступ к значениям в php-классе. Все идет гладко, но когда я пытаюсь достигнуть $ значение middle_of_month У меня есть ошибка отладки называетсяДоступ к элементу узла в xml с помощью Xpath

«Призыв к неопределенным метод DOMNodeList :: getElementsByTagName()»

Вот как XML выглядит

... 
<Fdr> 
    <MiddleOfMonth> 
     <Data Value="0" MonthNumber="1" /> 
     ... 

Я вернусь к другим тегам, которые были проверены с помощью отладки.

$fdr    = $key->getElementsByTagName(tag_constants::TAG_FDR); 
$middle_of_month = $fdr->getElementsByTagName(tag_constants::TAG_MIDDLE_OF_MONTH); 

У меня ошибка в строке $ middle_of_month. Я отлаживал, как 2 часа, и все еще не мог понять, что случилось. Любая помощь будет оценена

Edit:

tag_constants::TAG_FDR -> Fdr 
tag_constants::TAG_MIDDLE_OF_MONTH ->MiddleOfMonth 

Edit 2:

$middle_of_month = $fdr->item(0)->getElementsByTagName(tag_constants::TAG_MIDDLE_OF_MONTH); 

кажется решить проблему

+0

должен TAG_MIDDLE_OF_MONTH -> MiddleOfMont быть TAG_MIDDLE_OF_MONTH -> MiddleOfMonth? Может быть, вы просто ошибаетесь? – ITemius

+0

Извините, я ошибся здесь, в коде это правильно. Я редактировал здесь – FreshPro

+0

И я добавил элемент управления, чтобы увидеть, является ли $ fdr нулевым или нет, и это не пусто. – FreshPro

ответ

2

getElementsByTagName() возвращает NodeList, а также влечет за собой ошибки, NodeList s в свою очередь не имеют этого метода (только Element и Document с).

Вам необходимо будет выбрать пункт от $fdr для запуска getElementsByTagName(); возможно, как:

$fdr->item(0)->getElementsByTagName(tag_constants::TAG_MIDDLE_OF_MONTH); 
+0

Это работает :) Спасибо большое за отзыв – FreshPro

Смежные вопросы