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 :: Как выдернуть нужную информацию из xml файла?

 PHP.SU

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


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

> Без описания
Murtahan
Отправлено: 19 Января, 2010 - 15:14:52
Post Id


Новичок


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


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




Доброго дня. Подскажите, пожалуйста, на примере, как после обращения к странице .../ya.xml обработать ответ и из полученного текста:

CODE (html):
скопировать код в буфер обмена
  1. <categories>
  2. <category id="11">
  3. ПК И НОУТБУКИ
  4. </category>
  5. <category id="676" parentId="11">
  6. ноутбуки HP-Compaq
  7. </category>
  8. ...
  9. <offers>
  10. <offer id="2594" available="true">
  11. <url>
  12. http://www.maxbooki.ru/element.php?ya=100119&e=2596
  13. </url>
  14. <price>
  15. 22600
  16. </price>
  17. <currencyId>
  18. RUR
  19. </currencyId>
  20. <categoryId>
  21. 34
  22. </categoryId>
  23. <picture>
  24. http://www.maxbooki.ru/pics/goods/2594s.jpg
  25. </picture>
  26. <name>
  27. ноутбук Toshiba Satellite A300D-226 (PSAHCE-02301HRU) AMD Athlon QL-64 (2.1GHz) / 4096Mb / 320Gb / DVDRW / TFT 15.6" 1366x768 / HD 3470 256Mb / Wi-Fi / Cam / W7HP
  28. </name>
  29. </offer>
  30. <offer id="2596" available="true">
  31. <url>
  32. http://www.maxbooki.ru/element.php?ya=100119&e=2596
  33. </url>
  34. <price>
  35. 22890
  36. </price>
  37. <currencyId>
  38. RUR
  39. </currencyId>
  40. <categoryId>
  41. 34
  42. </categoryId>
  43. <picture>
  44. http://www.maxbooki.ru/pics/goods/2596s.jpg
  45. </picture>
  46. <name>
  47. ноутбук Toshiba Satellite L350-22R (PSLD8E-0S4032RU) CoreDuo T3000 (1.8GHz) / 3072Mb / 320Gb / DVDRW / TFT 17.0" 1440x900 / GMA 4500M / Wi-Fi / Сam / W7HP
  48. </name>
  49. <description>
  50. Описание товара
  51. </description>
  52. </offer>
  53. ...



Взять и добавить в массив нужную нам информацию, а именно:
Наименование продукции, цена, категория, описание. Далее из строки наименование нужно сделать другой массив, в котором такая строчка, к примеру, как:

ноутбук Toshiba Satellite L350-22R (PSLD8E-0S4032RU) CoreDuo T3000 (1.8GHz) / 3072Mb / 320Gb / DVDRW / TFT 17.0" 1440x900 / GMA 4500M / Wi-Fi / Сam / W7HP

разобьется на Toshiba Satellite L350-22R, PSLD8E-0S4032RU, CoreDuo T3000 (1.8GHz), 3072Mb, 320Gb, DVDRW, TFT 17.0" 1440x900, GMA 4500M, Wi-Fi, Сam, W7HP

?

Буду очень признателен за любую помощь.
 
 Top
EuGen Администратор
Отправлено: 19 Января, 2010 - 15:18:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Ищите нужный текст а затем разбивайте его при помощи регулярных выражений. (см. Приложение 3 в уроках)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Viper
Отправлено: 19 Января, 2010 - 15:29:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




а разве simpleXML не поможет тут ?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
EuGen Администратор
Отправлено: 19 Января, 2010 - 15:38:53
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




И то верно. Запрашивается же xml файл.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Carzil
Отправлено: 19 Января, 2010 - 15:40:05
Post Id



Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Нояб. 2009  
Откуда: Россия, Москва


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




Viper, поможет. Просто EuGen предложил самый простой вариант.


-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
Murtahan
Отправлено: 19 Января, 2010 - 15:53:18
Post Id


Новичок


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


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




Viper пишет:
а разве simpleXML не поможет тут ?


Ничего не знаю о simpleXML. Только сейчас начал изучать. Как присвоить запрашиваемый текст переменной $xml ?

(Отредактировано автором: 19 Января, 2010 - 15:57:09)

 
 Top
Viper
Отправлено: 19 Января, 2010 - 15:56:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Murtahan http://ua2.php.net/manual/en/fun...ml-load-file.php
все предельно просто.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
EuGen Администратор
Отправлено: 19 Января, 2010 - 16:00:11
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Carzil
В данном случае проще работать с xml - я просто не обратил внимания, что запрашивается именно xml


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
JustUserR
Отправлено: 19 Января, 2010 - 16:01:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Murtahan Про библиотеку SimpleXML можно вкратце почитать тут http://php.su/functions/?cat=simplexml Конечно можно разбивать с помощью регулярных выражений НО даже авторы мануала по Perlу (Который является конечно родоначальником регулярных выражений) не советуют разбивать XML-файлы с помощью них
Murtahan пишет:
Ничего не знаю об этой функции. Только сейчас начал изучать. Как присвоить запрашиваемый текст переменной $xml ?
Можете не беспокоиться по этому вопросу - функции библиотеки SimpleXML работат как с отдельными XML-файлами так и с XML-содержимым в памяти

PS Подсветка кода улетела - или мне каежтся Подмигивание


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Murtahan
Отправлено: 19 Января, 2010 - 21:38:54
Post Id


Новичок


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.     $xml = simplexml_load_file('ya.xml');
  4.     echo "Начинаем вывод";
  5.     foreach ($xml->offer as $offer) {
  6.         echo $offer->name;
  7.     }
  8.  
  9. ?>


Выводится только "Начинаем вывод". Что здесь не так?
 
 Top
Viper
Отправлено: 19 Января, 2010 - 22:45:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Murtahan пишет:
Выводится только "Начинаем вывод". Что здесь не так?

неверно.

$xml же у вас объект.

PHP:
скопировать код в буфер обмена
  1. foreach ($xml as $offer) {
  2.         echo $offer->name;
  3. }


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB