Hallo !
Hab nochmal mit den verschiedenen Schnittstellen fuer
XSLT unter PHP4 und hab jetzt glaube ich nen Hotfix
fuer das Probelm das ich 'mal geschildert hatte
[link http://forum.de.selfhtml.org/?t=140508&m=912954@title=PHP4 XSLT Seg Fault]
Das Problem scheint die Vrbindung von XLST-Processing
und nachfolgenden Transaktionen im XML-Ergebnisbaum
zu sein.
These
Vielleicht versucht der XSLT-Prcessor
Knoten rekursiv feizugeben, deren Uneterknotennicht
mehr existieren.
Zumindest hilft das hier
//[...]
$xmldoc1 = domxml_open_file("content/complex.xml");
$xsldoc = domxml_xslt_stylesheet_file ("xslt/complex.xsl") ;
$xmldoc2 = $xsldoc->process($xmldoc1,array ( 'id' => $_GET["id"], 'mode'=> "normal" ));
/////////////////////////////////////////////////
// Hierauf kommt's anscheined an
//
$xmldoc = domxml_open_mem($xmldoc2->dump_mem());
//
//[...]
// wenn man sowas dann spaeter machen will
//
foreach ($bodytree->children() as $contenttree)
{
$dummy = $xmldoc->create_element('dummy');
$dummy = $contenttree->clone_node(true);
// $father aus $xmldoc
$father = $pagetree->parent();
$father->append_child($dummy);
}
//[..]
So wurde der Baum vom stylesheet-prozessor
entkoppelt.
Performant ist das natuerlich nicht, da doppelt
geparsed und ein evtl. sehr grosser String kopiert
wird.
Ausserdem sind solche Dealokationen meist in mehrfach
verwendeten Funktionen enthalten - es steht zu vermuten
das der Effekt noch an andere Stele auftaucht.
Gruss
Holger