Guest - Marcos - Postado Janeiro 5, 2006 Denunciar Share Postado Janeiro 5, 2006 Olá,Alguém sabe como pegar xml (rss) de várias fontes e criar um novo xml, mesclando as notícias e classificando por data?Tem alguns sites que fazem isso: http://www.rssmix.com/P. ex. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Deividy Postado Janeiro 5, 2006 Denunciar Share Postado Janeiro 5, 2006 não entendi você quer ajudar os xml (rss) de diversos dulagare e mostrar por onder de datavocê já vio o google desketop ele faz isso mias é um agregador Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Janeiro 5, 2006 Denunciar Share Postado Janeiro 5, 2006 Não é bem um agregador como esse do Google.É mais ou menos o seguinte:pego as notícias do uol em xmlpego as notícias do estadão em xmlcrio um novo xml com as notícias dos dois Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Deividy Postado Janeiro 9, 2006 Denunciar Share Postado Janeiro 9, 2006 não consegui realizar o que você pergunto achei legal a idéia mais não consegui fazer bom se consegui ou algo parecido mostre - nos acho que isso é uma idéaia legal vou continuar tntando para ver se consigo algo asim! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mvrinaldi Postado Janeiro 11, 2006 Denunciar Share Postado Janeiro 11, 2006 beleza. estou estudando um pouco mais de xml com php. Acho que é por aí.Veja só um exemplo legal em:http://www.blogsieve.com/você pode cadastrar vários endereços de rss e ele te envia o endereço já agregado com todos. Problemas:1) Ele diz que está em ordem de data, mas não está. 2) As atualizações não são muito frequentes. Acho que duas no dia. Parece que tá bom mas não atende o que eu quero, que é notícias "fresquinhas". Senão, é melhor visitar o próprio site dos jornais ou usar um feeder. 3) E além disso, não durou uma semana e não funcionou mais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Deividy Postado Janeiro 12, 2006 Denunciar Share Postado Janeiro 12, 2006 acho que o lance da data é problema de quem divulga o rss não é determinante em todos os locais por isso vem fora de ordem o esquema seria criar uma data toda vez que ele entende que é atualizadobom algo assim, vou vendo aqui! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mvrinaldi Postado Janeiro 13, 2006 Denunciar Share Postado Janeiro 13, 2006 Minha (primeira) idéia pra fazer esse merge é pegar por php e colocar os dados em tabelas (mysql). Aí posso trabalhar como quiser. Semana que vem estou de férias, aí posso me dedicar melhor. quando tiver algo eu posto aqui.falou. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mvrinaldi Postado Janeiro 19, 2006 Denunciar Share Postado Janeiro 19, 2006 Não era bem o que eu pensava, mas ficou até melhor.<?php/*Adaptado por Marcos Vinícius Rinaldi deGlobal Syndication's RSS Parser*/set_time_limit(0);$file = "http://www.estadao.com.br/rss/agestado.xml";$rss_channel = array();$currently_writing = "";$main = "";$item_counter = 0;function startElement($parser, $name, $attrs) { global $rss_channel, $currently_writing, $main; switch($name) { case "RSS": case "RDF:RDF": case "ITEMS": $currently_writing = ""; break; case "CHANNEL": $main = "CHANNEL"; break; case "IMAGE": $main = "IMAGE"; $rss_channel["IMAGE"] = array(); break; case "ITEM": $main = "ITEMS"; break; default: $currently_writing = $name; break; }}function endElement($parser, $name) { global $rss_channel, $currently_writing, $item_counter; $currently_writing = ""; if ($name == "ITEM") { $item_counter++; }}function characterData($parser, $data) { global $rss_channel, $currently_writing, $main, $item_counter; if ($currently_writing != "") { switch($main) { case "CHANNEL": if (isset($rss_channel[$currently_writing])) { $rss_channel[$currently_writing] .= $data; } else { $rss_channel[$currently_writing] = $data; } break; case "IMAGE": if (isset($rss_channel[$main][$currently_writing])) { $rss_channel[$main][$currently_writing] .= $data; } else { $rss_channel[$main][$currently_writing] = $data; } break; case "ITEMS": if (isset($rss_channel[$main][$item_counter][$currently_writing])) { $rss_channel[$main][$item_counter][$currently_writing] .= $data; } else { $rss_channel[$main][$item_counter][$currently_writing] = $data; } break; } }}$xml_parser = xml_parser_create();xml_set_element_handler($xml_parser, "startElement", "endElement");xml_set_character_data_handler($xml_parser, "characterData");if (!($fp = fopen($file, "r"))) { die("could not open XML input");}while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); }}xml_parser_free($xml_parser);// output HTML $a = ("<div class=\"channelname\">" . $rss_channel["TITLE"] . "</div>"); if (isset($rss_channel["ITEMS"])) { if (count($rss_channel["ITEMS"]) > 0) { for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) { if (isset($rss_channel["ITEMS"][$i]["LINK"])) { $b = ("\n<div class=\"itemtitle\"><a href=\"" . $rss_channel["ITEMS"][0]["LINK"] . "\">" . $rss_channel["ITEMS"][0]["TITLE"] . "</a></div>"); $c = ("\n<div class=\"itemtitle\"><a href=\"" . $rss_channel["ITEMS"][1]["LINK"] . "\">" . $rss_channel["ITEMS"][1]["TITLE"] . "</a></div>"); $d = ("\n<div class=\"itemtitle\"><a href=\"" . $rss_channel["ITEMS"][2]["LINK"] . "\">" . $rss_channel["ITEMS"][2]["TITLE"] . "</a></div>"); } else { print ("\n<div class=\"itemtitle\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</div>"); } } } else { print ("<b>Não há artigos publicados no Estadão.</b>"); }}?>Dá um include desta na página que você quer e um echo das variáveis que você quer mostrar (a é o título, b, c e d ou outras que você quiser criar, são as notícias no formato de link). Pra colocar notícias de outras páginas é só criar outra e mudar o endereço lá em cima e o nome das funções das linhas 12, 36 e 44. E claro, as variáveis tb. Include dela tb e escolhe as variáveis de quais sites você quer. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Marcos -
Olá,
Alguém sabe como pegar xml (rss) de várias fontes e criar um novo xml, mesclando as notícias e classificando por data?
Tem alguns sites que fazem isso:
http://www.rssmix.com/
P. ex.
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.