RSS / XSLT
Ik zit met een paar vraagjes: ten eerste namelijk, hoe begin ik? Ik moet namelijk een RSS feed op mijn website weergeven door zelf XSLT te gebruiken. Ik wil graag mijn Flickr RSS feed gebruiken, maar hoe begin ik? Ik heb vrij goede kennis van XML en ik kan wel wat XSLT, maar hoe ga ik die RSS feed van mijn Flickr gebruiken? Moet ik steeds het XML source bestand downloaden?
Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Julien
Let wel op, niet elke browser snapt dat, dus kan je het beste dat met php omzetten.
Natuurlijk moet je de rss hebben als je d'r een stylesheet aan hangt.
Maar betekent dat, dat ik elke keer naar mijn Flickr RSS moet gaan, rechtsklik op pagina --> paginabron weergeven en dan de XML source code moet opslaan? Vervolgens in die XML code mijn aangepaste XSLT stylesheet koppelen en vervolgens uploaden naar mijn website waar ook mijn XSLT bestand op staat?
Lijkt mij dat het makkelijker moet kunnen, maar hoe? Dat is nu mijn vraag.
Ik wil het niet met PHP doen, want ik wil juist XSLT leren. Ik heb al een workaround voor de lelijke firefox en IE7 bug gevonden. Ik kan hem gewoon naar mijn eigen XSLT sturen.
Dus, hoe krijg ik die RSS feed van mijn Flickr nou zo ver om op mijn website te laten zien met mijn XSLT?
Je moet sowieso die xml van de rss door de xslt processor gooien.
Op w3schools staan twee voorbeelden, eentje wordt het client-side gedaan en eentje server-side.
Die kan je toch gebruiken?
Edit: Ik heb nu de xml code op mijn eigenlijk webserver gekregen door de php functie 'fsockopen()' te gebruiken (url_fopen functie is disabled bij het webhost bedrijf waar ik zit). Ik heb nu de feed als het ware op mijn eigen pagina.
Het enige wat ik nu dus nog moet doen is er een XSLT bestand aan koppelen. Maar ik kan niet vanuit het XML bestand aangeven dat hij dit XSLT bestand moet gebruiken, want ik kan de XML news feed niet aanpassen. Of wel, maar de vraag is hoe. Zou iemand mij kunnen helpen?
Gewijzigd op 01/01/1970 01:00:00 door Julien
Ik heb nu de news feed als XML op mijn website gekregen. Nu heb ik op php.net de functies xslt_create(), xslt_process(), en xslt_free() gevonden en die maken alles een stuk duidelijk. Alleen krijg ik de zooi nog niet aan de praat...
Ik heb de xml string in een variable gezet die $clean heet. Hieronder de daaropvolgende poging code om dit door een XSLT bestand te laten stylen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
echo "Hallo<br />";
function xml2html($xmldata, $xsl)
{
/* $xmldata -> your XML */
/* $xsl -> XSLT file */
#$path = 'include';
#$arguments = array('/_xml' => $xmldata);
$xh = xslt_create();
#xslt_set_encoding($xh, 'ISO-8859-1');
$html = xslt_process($xh, $xmldata, $xsl);
if (empty($html)) {
die('XSLT processing error: '. xslt_error($xh));
}
xslt_free($xh);
echo $html;
}
echo xml2html($clean, 'flickr_transform.xsl');
echo "Hallo 2";
?>
echo "Hallo<br />";
function xml2html($xmldata, $xsl)
{
/* $xmldata -> your XML */
/* $xsl -> XSLT file */
#$path = 'include';
#$arguments = array('/_xml' => $xmldata);
$xh = xslt_create();
#xslt_set_encoding($xh, 'ISO-8859-1');
$html = xslt_process($xh, $xmldata, $xsl);
if (empty($html)) {
die('XSLT processing error: '. xslt_error($xh));
}
xslt_free($xh);
echo $html;
}
echo xml2html($clean, 'flickr_transform.xsl');
echo "Hallo 2";
?>
Het probleem is, hij komt dus niet zover dat hij echo "Hallo 2"; output. Wel echo "Hallo 1";. De fout zit hem dus in mijn functie. Als ik de aanroep daarnaartoe comment, output hij wel de Hallo 2.
Iemand genoeg ervaring hiermee die me kan helpen?
Alvast bedankt!
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door Julien
Controleer eens of er daadwerkelijk wat in $clean zit?
Dat zit er, want als ik echo "$clean"; doe, krijg ik de door firefox geparsde xml feed te zien. Maar ik wil het juist laten parsen door mijn eigen xslt! :)
Verder zou ik ook error reporting en display errors aanzetten.
Ik krijg nu deze error:
Fatal error: Call to undefined function: xslt_create() in /home/vhosts/julienkraakman.net/httpdocs/xml/index.php on line 53
Maar hier:
http://nl3.php.net/manual/en/function.xslt-create.php
Staat de function gewoon vanaf php4. What's the deal?