Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: XML - SimpleXMLElement
Форумы портала PHP.SU » PHP » Программирование на PHP » XML - SimpleXMLElement

Страниц (1): [1]
 

1. MasterofCDM - 29 Декабря, 2009 - 20:50:23 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $i = 0;
  3. $xml = simplexml_load_file('test.xml');
  4.  
  5. echo $xml->MAINDATA[$i]->attributes()->Name1;
  6. }
  7.  


Почему выдает ошибку, если
CODE (text):
скопировать код в буфер обмена
  1.  
  2. echo $xml->MAINDATA[0]->attributes()->Name1;
  3.  

тогда все отлично, как получить данные при использовании переменной?
2. JustUserR - 30 Декабря, 2009 - 12:15:17 - перейти к сообщению
MasterofCDM Вероятно дело в том что $xml->MAINDATA[0] является неким объектом (Имеющим в том числе метод attributes) который генерируется объектом $xml на основе определенного метода объекта $xml который вероятно в списке аргументов содержит передачу не по значению а по ссылке
Вообще можно сделать достаточно простой walkaround - заменить echo $xml->MAINDATA[$i]->attributes()->Name1; на eval('echo $xml->MAINDATA['.$i.']->attributes()->Name1;')

 

Powered by ExBB FM 1.0 RC1