Hallo Jörg,
Sachlich ist die Aussage nämlich nicht zu widerlegen.
Falsch. SAX-Parser arbeiten schon seit Ewigkeiten in Chunks.
Mag sein. Aber wie realisiere ich das in PHP? Ich finde nur Beispiele, bei denen die Daten zunächst komplett gelesen werden - womit wir ja wieder beim Ausgangsproblem landen. Also sowas wie das hier:
Pseudo-Code (also, schon PHP, aber so wird es nicht funktionieren; es zeigt nur das Schema):
$parser = xml_parser_create();
xml_set_element_handler($parser, 'myStartHandler', 'myEndHandler');
xml_set_character_data_handler($parser, 'myCharHandler');
$fd = fopen('file', 'r');
while(($data = fread($fp, 512))) {
if(!xml_parse($parser, $data, feof($fd))) {
echo "Error in document";
}
}
Das würde ein Dokument in 512-Byte-Blöcken lesen und parsen. Die Handler musst du dir selber bauen.
LG,
CK
Edit: Huch, der Parse-Prototyp war da falsch, den hatte ich mir nur dahin kopiert um ihn nicht im Kopf haben zu müssen