Jump to content

XML parsen schlägt fehl


Recommended Posts

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 -

Link to post
Share on other sites

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

Link to post
Share on other sites

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!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...