Hi,
ich hab jetzt eine Lösung mit DOMXML und Regular Expressions umgesetzt:
$dom = new DomDocument();
$dom->loadXML($xml);
$tags = array("menu","list","rss");
$replace = array();
foreach($tags as $tag)
{
$nodes = $dom->getElementsByTagName($tag);
foreach($nodes as $node)
{
$replacement = call_user_func_array(array($this,$tag),array($node));
$xml = preg_replace("/<".addslashes($tag)."(.*?)(\\/>|<\\/".addslashes($tag).">)/s",$replacement,$xml,1);
}
}
Ich weiß nicht ob das sehr elegant ist, aber es funktioniert. (Ich hasse RegEx.)
Schöne Grüße
Julian