styla 0 Posted July 22, 2006 Share Posted July 22, 2006 hi, ich habe mir einen php parser gecodet welcher untereinander die Titel von dem Giga Newsfeed ausgeben soll. Der code sieht wie folgt aus: 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, "_getData"); //Giga RSS Datei laden if(!($fp = fopen($this->xml_file,"r"))) { echo "Date nicht korrekt geladen."; exit; } while($xml = fread($fp, 4096)) { xml_parse($this->xmlobj, $xml, feof($fp)); } // XML erfolgreich geparst } //start Tags erkennen function _startTag($obj,$element,$attr) { $this->akt_tag = $element; } //end Tags erkennen und Feed ausgeben function _endTag($obj,$element) { $this->titel = strip_tags($this->titel); $this->tt .= "$this->kategorie"; $this->titel = ""; } //getData -> Text aus den Tags laden function _getData($obj, $_Data) { //echo $this->akt_tag; if($this->akt_tag == "title") { $this->titel = $_Data; } else if($akt_tag == "link") { $this->link = $_Data; } else if($akt_tag == "description") { $this->beschreibung = $_Data; } else if($akt_tag == "category") { $this->kategorie = $_Data; } } function showfeed() { echo $this->tt; //test $fd = fopen("tt.txt", "w"); fwrite($fd, $this->tt); fclose($fd); } function setxmlfile($datei) { $this->xml_file = $datei; } } ?> mit startparsen wird der parsvorgang gestartet und mit showfeed werden die titel angezeigt (oder auch nicht) Mit setxmlfile wird der dateiname festgelegt. Wenn ich jetzt aber versuche link,kategorie,o.ä. auszugeben kommt nichts. er kriegt einfach keine Infos. Bei titel bekomme ich zwar alle aber in ziemlich großer Schriftart und einen großen Abstand (siehe unten) Die XML datei von Giga sieht so aus: GIGA eSports News http://www.giga.de/tv/esports/ GIGA eSports News de GIGA.DE http://www.giga.de http://static1.giga.de/giga-100x100.jpg GIGA // goes to Italy: KODE5 http://www.giga.de/tv/esports/00133181_giga_goes_to_italy_kode5/ http://www.giga.de/tv/esports/00133181_giga_goes_to_italy_kode5/ 21.07.06 16:48 - (dave) Ciao Ragazzi! Nicht die schsein.]]> GIGA eSports - eSports-News http://www.giga.de/tv/esports/00133181_giga_goes_to_italy_kode5/comments/ Fri, 21 Jul 2006 16:48:00 +0200 text/html de Es dreht sich doch: das Wechselkarussell http://www.giga.de/tv/esports/00133171_es_dreht_sich_doch_das/ http://www.giga.de/tv/esports/00133171_es_dreht_sich_doch_das/ 21.07.06 12:56 - (Phil) Kapio weg Talk.]]> GIGA eSports - On Air http://www.giga.de/tv/esports/00133171_es_dreht_sich_doch_das/comments/ Fri, 21 Jul 2006 12:56:00 +0200 text/html de ... Wenn ich den titel ausgeben lasse, fügt er noch leere datensätze ein, als ob ein leerer Titel da wär: GIGA eSports News GIGA.DE usw... Wo liegt das Problem ? Ich bedanke mich schonmal recht herzlich für jede Hilfe !!! mfg STyla - Editiert von STyla am 22.07.2006, 10:14 - - Editiert von STyla am 22.07.2006, 10:15 - - Editiert von STyla am 22.07.2006, 10:15 - - Editiert von STyla am 22.07.2006, 10:17 - Quote Link to post Share on other sites
styla 0 Posted July 22, 2006 Author Share Posted July 22, 2006 hab das ganze bissel entschärft, weils die breite zerschossen hat. Achtung !!!! Ich hab jetzt ebend was herausgefunden. Es liegt in der Tat an der XML Datei (denk ich zumindest), denn ich hab folgendes getestet: ein rdf dokument mit Alcohol 120% 1.9.5.4212 - Neue Version http://copybase.ch/Cb/PHPV2/News/Comments.php?Id=344 Kein beschreibender Inhalt vorhanden. Nachrichtenmeldung 2006-06-16T20:15:15+02:00 text/html de Copybase.ch – Alle Rechte vorbehalten und davon jeweils 8 Einträge !!! Wenn ich den gleichen nochmal anfüge, also 9 dann zeigt wer mir wieder nichts an ! ABER: Wenn ich eine Zeile entferne z.B. die .. oder eine andere dann funktioniert das wieder. Wo liegt jetzt der Fehler ? Danke im Voraus !!! mfg STyla Quote Link to post Share on other sites
styla 0 Posted July 22, 2006 Author Share Posted July 22, 2006 so, ich habs zwar nicht xmllike gelöst, aber mit regulären ausdrücken war das eine sache von fünf Minuten. Quote Link to post Share on other sites
styla 0 Posted July 22, 2006 Author Share Posted July 22, 2006 ha denkste, so wie ich es brauch gehts net mit reg. Ausdrücken. Also ich suche doch noch eine Lösung für das Problem. Quote Link to post Share on other sites
Guest Posted July 23, 2006 Share Posted July 23, 2006 http://php.net/simplexml Quote Link to post Share on other sites
styla 0 Posted July 23, 2006 Author Share Posted July 23, 2006 hi, jo danke. Bei Simplexml ist wieder das problem das er nicht direkt parset sondern vorlädt. Hab es jetzt aber hinbekommen. Waren ein paar Fehler bei groß/Kleinschreibung. Wenn es jemanden interessiert dann poste ich noch heute hier den vollständigen code! Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.