を使用する代わりにSimpleXMLElement::addAttribute
、パラメータへの配列アクセスを使用できますか?
たとえば、コードのその部分があると考えると、次のようになります。
$str = <<<XML
<root>
<elem>glop</elem>
</root>
XML;
$xml = simplexml_load_string($str);
var_dump($xml->elem);
これはこの出力を与えます:
object(SimpleXMLElement)[2]
string 'glop' (length=4)
この方法で「class=a」属性を追加できます。
$xml->elem['class'] .= 'a ';
var_dump($xml->elem);
これはあなたにこの出力を与えるでしょう:
object(SimpleXMLElement)[5]
public '@attributes' =>
array
'class' => string 'a ' (length=2)
string 'glop' (length=4)
次に、次のように、その値をクラスの既存の値に連結して、「class=b」属性を追加します。
$xml->elem['class'] .= 'b ';
var_dump($xml->elem);
そして、あなたは得る:
object(SimpleXMLElement)[7]
public '@attributes' =>
array
'class' => string 'a b ' (length=4)
string 'glop' (length=4)
属性の値の最後のスペースに注意してください; 多分あなたはトリムを使ってこれをきれいにしたいと思うでしょう:
$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)
お役に立てれば :-)