Hallo!
Ich bin recht neu bei PHP, habe aber erfolgreich einen XML-Parser gebaut.
Der geht bei mir auch einwandfrei, wenn er aber auf einem anderen Server liegt und von dort aus auf eine XML-Datei zurückgreift, die unter meiner Domain liegt, produziert er erst folgende Fehlermeldung dreimal, bevor er die Ausgabe aber dann doch richtig macht:
In Zeile 144 finde ich aber nichts böses:
...
Mein Parser-Script sieht so aus:
Es gibt in meinem Skript keine Funktion
Was habe ich falsch gemacht, oder besser: was ist der Unterschied zwischen zwei Servern?
Helft mir bitte...
Thanx!
bossman
Ich bin recht neu bei PHP, habe aber erfolgreich einen XML-Parser gebaut.
Der geht bei mir auch einwandfrei, wenn er aber auf einem anderen Server liegt und von dort aus auf eine XML-Datei zurückgreift, die unter meiner Domain liegt, produziert er erst folgende Fehlermeldung dreimal, bevor er die Ausgabe aber dann doch richtig macht:
Warning: Unable to call handler () in ... on line 144
PHP-Code:
xml_parse($parser, $str);
Mein Parser-Script sieht so aus:
PHP-Code:
function startElement ($parser, $element_name) {
switch ($element_name) {
case "NETZWERK" : echo ("\n"); break;
case "MITGLIED" : echo ("html "); break;
case "URL" : echo ("html"); break;
case "NAME_KURZ": echo (""); break;
case "NAME_LANG": echo (""); break;
}
}
function endElement ($parser, $element_name)
{
switch ($element_name)
{
case "NETZWERK" : echo ("\n"); break;
case "MITGLIED" : echo ("html"); break;
case "URL" : echo ("html">"); break;
case "NAME_KURZ": echo ("</a>"); break;
case "NAME_LANG": echo (""); break;
}
}
function cdata ($parser, $data)
{
echo ($data);
}
//der XML-Parser wird erstellt
$parser=xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
xml_set_default_handler ($parser, "");
//XML-Datei wird geöffnet und zeilenweise ausgelesen
$fhandle=fopen("http://www.meinedomain.de/netzwerk/netzwerk_wrs.xml", "r");
while (!feof($fhandle))
{
$str = fgets($fhandle, 1000);
//Dies ist jetzt die Zeile, die die Fehlermeldung nennt:
xml_parse($parser, $str);
//Fehlerbehandlung
$ecode=xml_get_error_code($parser);
if ($ecode !=0)
{
die ("<script>alert('Ein Fehler ist aufgetreten:".xml_error_string($ecode)."');</script>");
}
}
fclose($fhandle);
xml_parser_free ($parser);
PHP-Code:
handler();
Helft mir bitte...
Thanx!
bossman
Kommentar