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]   

> Описание: Не получается распорсить элемент с двоеточием
vanicon
Отправлено: 24 Февраля, 2011 - 17:45:56
Post Id



Частый посетитель


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


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




Есть структура xml файла вот такая:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <rss xmlns:yablogs="urn:yandex-blogs" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
  4.   <channel>
  5.     <link>http://blogs.yandex.ru/search.xml?text=%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0</link>
  6.     <title>библиотека — Яндекс.Поиск по блогам</title>
  7.     <image>
  8.       <url>http://img.yandex.net/i/logo100x43.png</url>
  9.       <title>Поиск Яндекса по блогам</title>
  10.       <link>http://blogs.yandex.ru/search.xml?text=%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0</link>
  11.       <width>100</width>
  12.       <height>43</height>
  13.     </image>
  14.     <ttl>60</ttl>
  15.     <generator>blogs.yandex.ru</generator>
  16.     <webMaster>support@blogs.yandex.ru</webMaster>
  17.     <copyright>noindex</copyright>
  18.     <description>Результаты поиска Яндекса по блогам и форумам по запросу: «библиотека»</description>
  19.     <yablogs:count>54491</yablogs:count>
  20.     <yablogs:more>http://blogs.yandex.ru/search.xml?text=%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0&p=1</yablogs:more>
  21.  </channel>
  22. </rss>
  23.  

и у меня не получается распорсить вот этот атрибут: "yablogs:count", сам парсер:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $blogszapros = file_get_contents('http://blogs.yandex.ru/search.rss?text='.$text_poisc, true);
  3. if ($blogszapros){
  4. $xmlblogs = simplexml_load_string($blogszapros);
  5. $count = 'yablogs:count';
  6. $col_search = $xmlblogs->channel->$count;
  7. echo $col_search;
  8. }
  9.  


-----
Так было, так есть и так будет
 
 Top
ALEN
Отправлено: 24 Февраля, 2011 - 20:29:58
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




К сожалению из за использования спец символов данный способ не сработает, как вариант могу предложить:

PHP:
скопировать код в буфер обмена
  1. $blogszapros = file_get_contents('http://blogs.yandex.ru/search.rss?text=sape', true);
  2. if (isset($blogszapros)&&$blogszapros!=''){
  3. $blogszapros=str_replace(array("yablogs:count","yablogs:more"),array("yablogscount","yablogsmore"),$blogszapros);
  4. $xmlblogs = simplexml_load_string($blogszapros);
  5. $count = 'yablogscount';
  6. $col_search = $xmlblogs->channel->$count;
  7. echo $col_search;
  8. }
 
 Top
Джур
Отправлено: 25 Февраля, 2011 - 09:21:26
Post Id



Посетитель


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


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




Во-первых, использование символов "&" в xml - это грех ибо сущность.
xml - должен быть валидным, тогда:
PHP:
скопировать код в буфер обмена
  1. print_r($xmlblogs->xpath('//yablogs:count'));


[Добавлено]
Не плодите сущности попусту, а то придет злой дед Оккам и бритвой вас, бритвой... Улыбка

(Отредактировано автором: 25 Февраля, 2011 - 09:25:19)



-----
Тамбовский каджит тебе товарищ
 
 Top
ALEN
Отправлено: 25 Февраля, 2011 - 10:44:35
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




vanicon
Вот смотри, что тебе Джур написал, чтоб тебя бритвой не резали)))
 
 Top
JustUserR
Отправлено: 25 Февраля, 2011 - 22:48:08
Post Id



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


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


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




vanicon пишет:
У меня не получается распорсить вот этот атрибут: "yablogs:count", сам парсер
Возможной причиной осуществления некорректного функционирования предполагаемого PHP-приложения, обеспечивающего анализ вложенных объектов предоставленной XML-структуры относительно их пути расположения, является осуществления некорректного уровня элементного трактования целевых элементов относительно используемой схемы дифференции элементных уровней, по отношению к разделительным и управляющих объектам


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 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