За последние 24 часа нас посетили 65168 программистов и 5371 робот. Сейчас ищут 3176 программистов ...

как парсить Атом Rss

Тема в разделе "PHP для новичков", создана пользователем seriyvolk, 5 авг 2016.

  1. seriyvolk

    seriyvolk Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    27
    Симпатии:
    0
    Без проблем парсю простые ленты рсс при помощи simplexml , но вот где атом рсс не получается.
    Пожалуйсто подскажи простой метод как я могу это зделать. Спасибо!
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Есть ещё DOMDocument
     
  3. seriyvolk

    seriyvolk Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    27
    Симпатии:
    0
    Если можно будет маленький пример.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
  5. seriyvolk

    seriyvolk Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    27
    Симпатии:
    0
    Не могу сообразить. Если можно не большой пример допустим как спарсить с http://news.am/rus/rss
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Показывай наработки. Готовый код покупается во фрилансе или ожидается в за меня. В новичках ты сам справляешься.
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Как-то так:
    PHP:
    1. <?php
    2.  
    3. $d = new DomDocument;
    4. $d->loadXML("http://news.am/rus/rss");
    5.  
    6. $title = $d->getElementsByTagName("title")->item(0)->nodeValue;
    7. echo $title;
    не отлаживал
     
  8. seriyvolk

    seriyvolk Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    27
    Симпатии:
    0
    Спасибо, но скрипт не парсит.
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    можешь сделать var_export($d) и посмотреть структуру в исходном коде
     
    seriyvolk нравится это.
  10. seriyvolk

    seriyvolk Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    27
    Симпатии:
    0
    DOMDocument::__set_state(array( )) Выдаёт пустой массив
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    а ты вывод ошибок-то включи и убедишь что лента не парсится.
     
    denis01 нравится это.
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    PHP:
    1. <?php
    2. $xmlstr = <<<XML
    3. <?xml version="1.0"  encoding="UTF-8"?>
    4.     <rss version="2.0">
    5.       <channel>
    6.         <title>NEWS.am (Русский)</title>
    7.         <link>http://news.am/rus/</link>
    8.         <description>Новости Армении - NEWS.am</description>
    9.         <image>
    10.           <url>http://news.am/favicon.ico</url>
    11.           <title>NEWS.am</title>
    12.           <link>http://news.am/rus/</link>
    13.         </image>
    14.         <managingEditor>editor@news.am</managingEditor>
    15.         <webMaster>karen.yazbaryan@gmail.com</webMaster><item>
    16.         <title>Около 3000 иракцев попали в плен ИГ</title>
    17.         <link>http://news.am/rus/news/340665.html</link>
    18.         <description></description>
    19.         <pubDate>Fri, 05 Aug 2016 17:08:06 +0400</pubDate>
    20.     </item><item>
    21.         <title>В Лондоне хотят открыть кафе, где будут подавать «секс-кофе»</title>
    22.         <link>http://news.am/rus/news/340664.html</link>
    23.         <description></description>
    24.         <pubDate>Fri, 05 Aug 2016 16:53:53 +0400</pubDate>
    25.     </item><item>
    26.         <title>Император Японии Акихито обратится к нации</title>
    27.         <link>http://news.am/rus/news/340667.html</link>
    28.         <description></description>
    29.         <pubDate>Fri, 05 Aug 2016 16:39:22 +0400</pubDate>
    30.     </item><item>
    31.         <title>В Лиле решили отменить открытие блошиного рынка из-за угрозы терактов</title>
    32.         <link>http://news.am/rus/news/340660.html</link>
    33.         <description></description>
    34.         <pubDate>Fri, 05 Aug 2016 16:25:48 +0400</pubDate>
    35.     </item><item>
    36.         <title>Американский банк посоветовал скупать рубли</title>
    37.         <link>http://news.am/rus/news/340539.html</link>
    38.         <description></description>
    39.         <pubDate>Thu, 04 Aug 2016 19:35:45 +0400</pubDate>
    40.     </item></channel></rss>
    41. XML;
    42. $xml = new SimpleXMLElement($xmlstr);
    43. var_export($xml);
     
  13. seriyvolk

    seriyvolk Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    27
    Симпатии:
    0
    Warning: DOMDocument::loadXML() [domdocument.loadxml0]: Start tag expected, '<' not found in Entity, line: 1 ...
    --- Добавлено ---
    Воо не чего не получается :-(
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    @seriyvolk ну так используй SimpleXMLElement я и пример полный дал.
     
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Значит не подгружает этот файл, а может там XML не совсем валидный. Хрен его знает. Отлаживать надо
    --- Добавлено ---
    PHP:
    1. echo file_get_conents("http://news.am/rus/rss");
    покажи, что выведет. ТОлько исходный код страницы смотреть
     
  16. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.601
    Симпатии:
    423
    Адрес:
    РД, г. Махачкала.
  17. seriyvolk

    seriyvolk Активный пользователь

    С нами с:
    30 мар 2012
    Сообщения:
    27
    Симпатии:
    0
  18. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Ну ты хоть попробуй. Уже два человека тебе решение предложили. Или унести тебя в "за меня" где ты готовый кодик подождешь?
     
  19. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.601
    Симпатии:
    423
    Адрес:
    РД, г. Махачкала.
    @seriyvolk, в принципе в английский у меня тоже английский не особо на высоком уровне, но разобраться что к чему там можно легко. Хватает заголовок перевести, а потом уже поймешь какой инструмент использовать.

    А что именно не понятно?