PDA

Bekijk Volledige Versie : nu.nl deeplink_xml problemen



Marc
04/01/03, 00:28
Waarom werkt dit script niet meer

file: news.php


<?
//lees de file in in een string
$strNuNL=implode("",file("http://nu.nl/deeplink_xml"));
$strNuNL=preg_replace("/\n/","",$strNuNL);

//haal de sectie economie.hoofd op
preg_match("/<section name=\"nieuws.hoofd\">(.*?)<\/section>/",
$strNuNL,$arrEconomieHoofd);

//preg_match("/<section name=\"economie.hoofd\">(.*?)<\/section>/",

//splits de headlines
$arrDocumenten=explode("</document>",$arrEconomieHoofd[1]);

//uitvoer naar browser in de vorm van een tabel
?>
<table>
<?
for($i=0;$i<count($arrDocumenten);$i++)
{
preg_match("/href=\"(.*?)\">(.*)/",$arrDocumenten[$i],$arrOut);

//de href staat nu in $arrOut[1] en de tekst in $arrOut[2]
?>
<tr>
<td><a href="<?=$arrOut[1]?>"><?=$arrOut[2]?></a></td>
</tr>
<?
}
?>
</table>

robert
04/01/03, 01:12
Marc <info@nationaleopinie.nl>:
> Waarom werkt dit script niet meer

Omdat het formaat van de deeplinks al een tijd terug veranderd is.
Daarnaast is vanwege problemen met het ANP ook de feed-provider aangepast
(dat is nu Novumnieuws).

Je zult je script moeten gaan aanpassen, vrees ik.

--
robert

Hans Wolters
04/01/03, 01:59
On 3 Jan 2003 14:28:09 -0800, Marc <info@nationaleopinie.nl> wrote:
> Waarom werkt dit script niet meer
>
> file: news.php
> $strNuNL=implode("",file("http://nu.nl/deeplink_xml"));

Vraag aan ze of ze een fatsoenlijk formaat zoals rdf willen gebruiken. Dit
is niets anders dan een sectie zelf gedefineerde tags zonder dtd.

Hans
--
Ik wil http://www.linux.nl wel overnemen voor het symbolische bedrag
van 1 EURO.

Daniel Tryba
04/01/03, 02:14
robert <robert+nl.internet.www.server-side@usenet-h.allyourbass.org> wrote:
> > Waarom werkt dit script niet meer
>
> Omdat het formaat van de deeplinks al een tijd terug veranderd is.
> Daarnaast is vanwege problemen met het ANP ook de feed-provider aangepast
> (dat is nu Novumnieuws).
>
> Je zult je script moeten gaan aanpassen, vrees ik.

De syntax is gelukkig nauwelijks veranderd, op wat extra whitespaces na en
nieuwe namen voor de secties. Derhalve is een de quickfix (samen met wet
cosmetishe verandereingen:

-----------
<?php
$strNuNL=preg_replace('/[\r\n]/','',implode("",file("http://nu.nl/deeplink_xml")));

if(preg_match('/<section name="Economie">(.*?)<\/section>/',$strNuNL,$arrEconomieHoofd))
{
$arrDocumenten=explode('</document>',$arrEconomieHoofd[1]);
echo "<table>\n";
for($i=0;$i<count($arrDocumenten);$i++)
{
if(preg_match('/href=\"(.*?)\">(.*)/',$arrDocumenten[$i],$arrOut))
{
echo <<<EOT
<tr>
<td><a href="{$arrOut[1]}">{$arrOut[2]}</a></td>
</tr>
EOT;
}
}
echo "\n</table>\n";
}
else
{
echo "Oopsie";
}
?>
-----------

Welliht eens tijd om naar een XML parser te kijken :)

--

Daniel Tryba

robert
04/01/03, 12:35
Hans Wolters <hans@e35203.upc-e.chello.nl>:
> On 3 Jan 2003 14:28:09 -0800, Marc <info@nationaleopinie.nl> wrote:
>> Waarom werkt dit script niet meer
>>
>> file: news.php
>> $strNuNL=implode("",file("http://nu.nl/deeplink_xml"));
>
> Vraag aan ze of ze een fatsoenlijk formaat zoals rdf willen gebruiken.

http://nu.nl/deeplink_rss/

> Dit is niets anders dan een sectie zelf gedefineerde tags zonder dtd.

Alsof het formaat daarmee onnoemelijk complex wordt.

--
robert