Jump to content
Sign in to follow this  
styla

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 -

Share this post


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

Share this post


Link to post
Share on other sites

so,


ich habs zwar nicht xmllike gelöst, aber mit regulären ausdrücken war das eine sache von fünf Minuten.

Share this post


Link to post
Share on other sites

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.

Share this post


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!

Share this post


Link to post
Share on other sites
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.

Sign in to follow this  

×
×
  • Create New...