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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по SimpleXML

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: парсинг тэгов
g200
Отправлено: 28 Января, 2014 - 11:45:01
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Подскажите почему скрипт не проходит по всем тэгам "length" в xml файле... Он выводит только первый и ошибку.

XML-файл:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="UTF-8" ?>
  3. <root>
  4. <catalogue>
  5. <FILM_1_NAME>
  6. <name>FILM_NAME</name>
  7. <packages>
  8. <_pack1>shared
  9. <includes>
  10. <cd>_cd_name_<length>60.0</length></cd>
  11. <cd>_cd_name_<length>80.0</length></cd>
  12. <book>_book_name_<length>0.0</length></book>
  13. </includes>
  14. </_pack1>
  15. <_pack2>shared
  16. <includes>
  17. <misc>_misc_name_<length>5.0</length></misc>
  18. <book>_book_name_<length>0.0</length></book>
  19. </includes>
  20. </_pack2>
  21. <_pack3>shared
  22. </_pack3>
  23. </packages>
  24. </FILM_1_NAME>
  25. <FILM_2_NAME>
  26. <name>FILM_NAME</name>
  27. <packages>
  28. <_pack1>shared
  29. </_pack1>
  30. <_pack2>shared
  31. <cd>_cd_name_<length>30.0</length></cd>
  32. </_pack2>
  33. </packages>
  34. </FILM_2_NAME>
  35. </catalogue>
  36. </root>
  37.  


Скрипт обработки:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. $xml=simplexml_load_file("cat.xml");
  5.  
  6. $cat_array=array();
  7.  
  8. for($y=0,$i=0;$y<($xml->catalogue->children()[0]->packages->children()[$y]->includes->cd->count()),$i<($xml->catalogue->children()[0]->packages->children()->count());$y++,$i++) {
  9.  
  10. if(!empty($xml->catalogue->children()[0]->packages->children()[$i]->includes->cd[$y])) {
  11.  
  12. $cat_array[$y]=$xml->catalogue->children()[0]->packages->children()[$i]->includes->cd[$y]->length;
  13.  
  14. }
  15.  
  16. echo $cat_array[$y]."<br />"."y: ".$y."<br />"." x: ".$i;
  17. }
  18. ?>
  19.  


Результат:

60.0
y: 0
x: 0
Notice: Undefined offset: 1 in C:\localweb\index.php on line 15

y: 1
x: 1
Fatal error: Call to a member function count() on a non-object in C:\localweb\index.php on line 7
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB