ich habe mir einen parser gebaut um den Giga Feed zu parsen. Dabei will ich den Titel und die Beschreibung untereinander haben.
Mein Parser sieht so aus:
- Code: Select all
<?php
class gigafeed
{
var $titel;
var $descr;
var $current_tag; //Aktueller Tag der bearbeitet wird
function parsen()
{
$this->xmlobj = xml_parser_create();
xml_set_object($this->xmlobj, &$this);
xml_parser_set_option($this->xmlobj, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($this->xmlobj, "startTag","endTag");
xml_set_character_data_handler($this->xmlobj, "dataTag");
$fp = fopen("giga.xml", "rb");
while($daten = fread($fp, 4096))
{
xml_parse($this->xmlobj, $fp, feof($fp));
}
}
function startTag($obj,$element,$attribute)
{
$this->current_tag = $element;
}
function dataTag($obj,$data)
{
switch($this->current_tag)
{
case 'title':
$this->titel .= $data;
break;
case 'description':
$this->descr .= $data;
break;
default:
break;
}
}
function endTag($obj,$element)
{
if($element == "item")
{
echo "<b>$this->titel</b><br";
echo "<i>$this->descr</i><br><br>";
$this->titel = "";
$this->descr = "";
}
}
}
$giga = new gigafeed;
$giga->parsen();
?>
Der Feed ist hier:
http://www.giga.de/info/rss/
Dort den Feed für "nur eSport News";
Man sollte die Datei öffnen und den Inhalt manuell speichern, da sonst eine unschöne Datei rauskommt. Giga hat halt mist gebaut.
So wenn ich jetzt mit meinem parser den Feed parsen will und anzeigen will. Kommt keine Fehlermeldung, aber auch keine Daten. Gar Nichts.
Wo liegt der Fehler, bzw. was mache ich falsch ?
Danke schonmal im Voraus !!!
mfg
skunker