Hallo,
Ausser ein paar Notice-Meldungen "Undefined variable:(...)" kommt kein Fehler
Und was steht in den Meldungen und was steht im Code, der diese Meldungen ausführt?
Nichts von Bedeutung. Ganz einfache Kontrollvariablen die mit diesem Skript überhaupt nichts zu tun haben weil sie erst wesentlich später behandelt werden. z.B. $error_color = '1'; (wenn man eine abfrage startet, es die farbe aber nicht gibt)
Also erstmal muss ich mich schon wieder korrigieren.
unset($user[0]); löscht gar nichts.
unset($xml->user[0]); löscht das erste, nicht das relevante Element.
Und laut PHP.net müsste es doch auch
if((string) $color->ton2 == 'Grün')
^^^^^^^^
heißen oder?
Mein Beispielcode funktioniert hier (5.2.4) fehlerfrei und wie gewünscht.
'PHP Version 5.2.0-8+etch10' steht bei mir ganz oben fett wenn ich phpinfo() aufrufe. Mag es an der Version liegen? Bei mir tut sich nämlich nichts.
Ich hab hier jetzt stehn
$xml = new SimpleXMLElement($xmlstr);
foreach($xml->xpath('color') as $color){
if($color->ton2 == 'Gruen'){
unset($user[0]);
}
}
echo($xml->asXML());
In der XML-Datei steht jetzt auch mal 'Gruen' statt 'Grün' zur Sicherheit.
Das Element wird auch gefunden, das habe ich mir ausgeben lassen.
Das echo($xml->asXML()); zeigt mir aber alles an, es wurde nichts gelöscht.
Danke für deine Mühe!
Christian