+ CLASS Mysterium
MichaelR
- php
Hallo,
in einem meiner Skripte verwende ich einen selbstgeschriebenen xml Parser mit folgendem Aufruf:
// parser erzeugen
$quiz_parser = new Mein_Parser;
// XML Struktur übergeben (<?xml version="1.0" ...)
$quiz_parser->Set_File($XML_Data);
// Parsing starten
$quiz_parser->Parse_XML_Data();
// geparstes Zeug übergeben
$Daten[] = $quiz_parser->Get_Parsed_Data();
// parser zerstören
$quiz_parser->Destroy_Parser();
bei ->Parse_XML_Data() passiert folgendes:
// parser constructor
// hier werden auch die Event-Handler für Start-,Endtag und Content festgelegt
function QuizSet_Parser(){
$this->xml_parser = xml_parser_create();
xml_set_object($this->xml_parser, &$this);
xml_set_element_handler($this->xml_parser, "StartTag", "EndTag");
xml_set_character_data_handler($this->xml_parser, "Data");
}
// PARSE XML DATA
function Parse_XML_Data(){
// überprüfen ob wirklich was zum parsen da ist
if ($this->XML_File == ""){
//print "<script>alert('nix da');</"."script>";
}
else{
// parsen starten:
xml_parse($this->xml_parser, $this->XML_File, "") or
die (print str_replace("<", "<", $this->XML_File) . "<br />" .
sprintf("XML error: - %s at line %d", xml_error_string(xml_get_error_code($this->xml_parser)),
xml_get_current_line_number($this->xml_parser)));
}
}
Das Problem ist jetzt, wenn ich in einer while Schleife nacheinander mehrere XML Strukturen übergeben (und dabei ist es egal ob ich immer den gleichen Parser verwende [und zuvor jeweils die Daten-Variablen leere] oder ob ich bei jedem Durchgang der while-Schleife den Parser neu erzeuge und dann später wieder zerstöre) bekomme ich _immer_ folgenden Fehler angezeigt:
Warning: Unable to call handler StartTag() in d:\pfad\v2\lib\Routines_XML.php on line 52
Warning: Unable to call handler Data() in d:\pfad\v2\lib\Routines_XML.php on line 52
Warning: Unable to call handler EndTag() in d:\pfad\v2\lib\Routines_XML.php on line 52
D.h. genau beim Aufruf von xml_parse geht irgendwas nicht ???
Jetzt aber das komische an der Sache: wenn ich in einem anderen Skript nur eine XML-Struktur parsen lasse gibt's keine Probleme !!!
An was muss ich denn noch denken was ich scheinbar bislang vergessen hab ?
Oder was könnte sonst das Problem sein ?
Bitte um Hilfe, denn ich hab' mir schon tagelang den Kopf zerbrochen und die Haare gerauft und finde die Problemlösung nicht ....
Danke + Grüße
Michael
Hallo Michael,
hast Du mal in die user contributed notes im PHP manual geschaut?
Da sind ein paar Bemerkungen zu diesem Problem(bei xml_set_object) - vielleicht hilft's ja.
Harry
Hallo,
hast Du mal in die user contributed notes im PHP manual geschaut?
Da sind ein paar Bemerkungen zu diesem Problem(bei xml_set_object) - vielleicht hilft's ja.
Nein, aber werde ich gleich machen. Danke.
Michael