Hallo Mathias!
Ich habe einen Teil des Scripts jetzt wie folgt umgeschrieben:
// Bedingung zum löschen festlegen
$element = 'ton1';
$wert = 'Rot';
// XML in Array packen
$xml = new SimpleXMLElement($xmlstr);
// Arrayindex auf 0 setzen und
$i = '0';
// Array durchlaufen solange es color-Elemente gibt und Elemente an $color übergeben
foreach($xml->xpath('color') as $color){
// Wenn Kind-Element $element den Wert $wert besitzt
if($color->$element == $wert){
// lösche Element mit aktuellem index
if(count($xml) == '1'){
unset($xml->color);
}else{
unset($xml->color[$i]);
}
// sonst tue nichts
}
// erhöhe Arrayindex
$i++;
// Schleife beenden
}
Das funktioniert soweit endlich prima bis auf den Umstand, dass die Elemente offenbar nur nacheinander gelöscht werden und nicht in einem Rutsch.
Danke!
Christian