Pustota
(только не через SAX) Желательно, со сложной структурой данных.
А какого размера файл? просто по моему впечатлению файлы больше 5 мегабайт обрабатывать не SAX методом очень даже сложно. по крайней мере 40 метров DOM- ом, решительно не обрабатывались. Но в любом случае, если структура данных сложная.( или вообще динамическая) я бы использовал что то вроде:
PHP:
$domDoc = new DOMDocument();
$domDoc->load($this->file);
$xp=new DOMXPath($domDoc);
$node = $xp->query($path);
Где $path - запрос Xpath. (поскольку это просто строка можно сделать так чтоб она менялась, соответственно выбирать имено то что тебе надо и как тебе надо)
Таким образом в $node будет любой извращенный запрос XPath.
потом
PHP:
DOMDocument->saveXML($node)
вот и строка содержащая нужный XML(причем детей ноды тоже) . можна этого не делать выцепить еще несколько кусков xml. а потом создать новый Dom и с помощью
PHP:
DOMDocument->importNode()
собрать ети куски в новом документе.
PS : $node = $xp->query($path); - возвращяет ноде лист чтоб получить доступ к елементу используй DOMNodelist->item()