Kullanmak yerine SimpleXMLElement::addAttribute a>, belki sadece parametrelere dizi-erişimini kullanabilir?
Örneğin, bu kod kısmına sahip düşünüyor:
$str = <<<XML
<root>
<elem>glop</elem>
</root>
XML;
$xml = simplexml_load_string($str);
var_dump($xml->elem);
Hangi bu çıktıyı verir:
object(SimpleXMLElement)[2]
string 'glop' (length=4)
Sen ekleyebilirsiniz "class = a" bu şekilde bağlıyor:
$xml->elem['class'] .= 'a ';
var_dump($xml->elem);
Bu çıktıyı verecektir:
object(SimpleXMLElement)[5]
public '@attributes' =>
array
'class' => string 'a ' (length=2)
string 'glop' (length=4)
Ve sonra, sınıf, bu şekilde mevcut değeri bu değeri birleştirerek "class = b" özniteliği ekleyin:
$xml->elem['class'] .= 'b ';
var_dump($xml->elem);
Ve edinin:
object(SimpleXMLElement)[7]
public '@attributes' =>
array
'class' => string 'a b ' (length=4)
string 'glop' (length=4)
Niteliğin değerinin sonunda boşluk unutmayın; belki Döşeme kullanarak, bu temizlemek isteyeceksiniz:
$xml->elem['class'] = trim($xml->elem['class']);
var_dump($xml->elem);
Et voila:
object(SimpleXMLElement)[8]
public '@attributes' =>
array
'class' => string 'a b' (length=3)
string 'glop' (length=4)
Bu :-) yardımcı olur umarım