SimpleXML - Element löschen/ersetzen

SimpleXML - Element löschen/ersetzen

am 27.10.2006 18:56:26 von Florian Haag

Hallo,
ich versuche, via SimpleXml ein Xml-Element zu löschen und ein anderes
zu ersetzen (durch ein Neues, welches ich mittels new SimpleXMLElement
erzeuge), scheitere daran bisher jedoch.
Ich weiß, dass es über einen (langsamen?) Umweg über DOM geht, frage
mich aber, ob es nicht auch direkt mit SimpleXml möglich ist.
Der einzige Hinweis, den ich im Internet dazu finden konnte,
funktioniert für mich nicht (dort wurde unset auf ein Element
angewendet, was aber hier (in der Form unset($xml->abc[0])) zu einem
"Internal Server Error" führt).

Hat jemand einen Tipp oder zumindest die Gewissheit, dass es via DOM
nicht maßgeblich langsamer geht?

Vielen Dank im Voraus,
Florian

Re: SimpleXML - Element löschen/ersetzen

am 03.11.2006 23:40:50 von Christian Wagner

> [...] unset($xml->abc[0])) [...]

Müsste es nicht gehen, dass Du den vorhandenen Node einfach überschreibst?
also
$xml->abc[0] = new SimpleXML('Value');

> Hat jemand einen Tipp oder zumindest die Gewissheit, dass es via DOM
> nicht maßgeblich langsamer geht?

Also ich kann Dir mit Gewissheit sagen, dass es unter DOM wesentlich
langsamer läuft als mit SimpleXML.
Zumindest bei meiner Anwendung, die eine 150KB große XML-Datei lädt und
parst.
SimpleXML ist in dem Bereich ca 30% schneller gewesen.

Christian