• 締切済み

SimpleXMLでxmlのデータを修正するときの疑問

PHP5でflashで扱うXMLの編集をしています。 <xml> <aaa>12345</aaa> </xml> というxmlに対し、 $nodeName = "aaa"; $xml = simplexml_load_file($xmlFile); $xml->$nodeName->title = "aiueo"; という感じで、xmlの更新をしていますが、 <xml> <aaa>12345</aaa> <aaa>67890</aaa> <aaa>24680</aaa> </xml> と、xmlのnodeが同名複数になったとき、 $xml->aaa[0]->title = "aiueo"; 相当のことを、ノード名も、何番目のノードかも、 変数をつかって実行する方法はありますか? 当然のごとく、 $nodeName[$num]は、$nodeNameの配列の値とみなされますし、 $a = $nodeName . '[' . $num . ']'; $xsml->$a->title = "aiueo"; とやると、"aaa[0]"という文字列をノード名にしてデータ追加してしまいます。 ご存知の方がいらっしゃいましたら、ご教示下さい。

みんなの回答

  • altrn
  • ベストアンサー率62% (10/16)
回答No.2

すいません、間違えました、 $xsml->{$nodeName[$num]}->title = "aiueo"; ではなく $xsml->{$nodeName}[$num]->title = "aiueo"; です。 見当違いでしたらお許しください...

  • altrn
  • ベストアンサー率62% (10/16)
回答No.1

質問の意味を理解していないかもしれませんが... $a = $nodeName . '[' . $num . ']'; $xsml->$a->title = "aiueo"; を $xsml->{$nodeName[$num]}->title = "aiueo"; とすればうまくいくかもしれません。

関連するQ&A

専門家に質問してみよう