Moin,

folgendes Problem: ich habe mir mal ein Tutorial zu den xml-Funktionen von Php durchgelesen. Jetzt habe ich versucht, mir selbst einen Parser zu basteln.
PHP-Code:
<?php

function auf($parser$name$attr){
    switch(
$name){
        case 
'ABC':
            echo 
'<tr><td valign="top"><strong>' $attr['NAME'] . '</strong></td><td>';
            break;
        
        case 
'XYZ':
            echo 
'<tr><td colspan="2">[';
            break;
        
        default:
            die(
'Unbekanntes Element: ' $name);
            break;
    }
}

function 
zu($parser$name){
    switch(
$name){
        case 
'ABC':
            echo 
"</td></tr>\n";
            break;
        
        case 
'XYZ':
            echo 
"]</td></tr>\n";
            break;
        
        default:
            die(
'Unbekanntes Element: ' $name);
            break;
    }
}

function 
text($parser$text){
    echo 
$text;
}


echo 
"<html><body>\n<table border=\"1\">\n";

$data file('test.xml');

$parser xml_parser_create();
xml_set_element_handler($parser'auf''zu');
xml_set_character_data_handler($parser'text');


foreach(
$data as $i){
    if(!
xml_parse($parser$i))
        die(
sprintf("XML error: %s at line %d\n",
                   
xml_error_string(xml_get_error_code($parser)),
                   
xml_get_current_line_number($parser)));
}


xml_parser_free($parser);

echo 
"</table>\n</body></html>"

?>
Damit will ich folgende xml-Datei parsen:
Code:
<?xml version="1.0"?>
<xyz>bla</xyz>
<abc ttt="test">So, wenn man jetzt keine Fehlermeldungen sieht, müsste es gehen.</abc>
Der Parser gibt aber nur den Teil innerhalb von <xyz> aus. Danach bricht er mit folgender Meldung ab:
XML error: junk after document element at line 3
(die Fehlermeldung wird von dem die()-Befehl ausgegeben).
Leider konnte ich im Netz nichts darüber rausfinden, was genau "junk" in diesem Fall bedeutet und wie sich das beheben lässt.
Hat jemand eine Ahnung?