Hallo Forum,
Ich versuche gerade eine XML-Datei zu parsen, mit expat. Schön - geht auch, aber ich verstehe das Vorgehen dieses Parsers nicht, besonders wann er den Handler für Textdaten aufruft.
//XML-Datei
<?xml version="1.0" encoding="UTF-8"?>
<sect1>
<title>
Absatztitel
</title>
<para>
Absatztext
neue Zeile
</para>
</sect1>
//Handler für Daten ( CDATA ) setzen
xml_set_character_data_handler( $parser, "daten" );
//Funktion "daten()"
function daten( $parser, $data )
{
echo $data;
}
für einfache Beispiele funktioniert das soweit. Aber, wenn ich z.B. Zeilenumbrüche in der XML-Datei mit nl2br() umsetzen will:
function daten( $parser, $data )
{
echo nl2br($data);
}
stelle ich fest, daß diese Funktion nicht etwa einmal für "Absatztitel" und einmal für "Absatztext" aufgerufen wird, sondern andauernd. Z.B. auch zwischen "</title>" und "<para>" und bei Leerzeichen im Text usw.
Keine Ahnung, wie bringe ich das Teil dazu den Text innerhalb zweier zusammengehöriger Tags als _ein_ Ganzes aufzufassen?
Gruß, Andreas
<img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
http://was-ist-das.andreas-lindig.de