2011-01-05 1 views
1

私は現在、XMLファイルを扱うクラスを書き直しています。 xmlファイルとその構造によっては、オブジェクトをマージする必要があることがあります。私は、 "ページ" の要素から属性のみを必要として、前に
PHPでオブジェクトをマージするには?

<page name="a title"> 
    <permission>administrator</permission> 
</page> 

<page name="a title"/> 

そして、私はこれを持って、別の時間:

は、私がこれを持っていたら、言うことができます。そのため、多くのコードでは、属性($ loadedXml-> attributes())のみを含むオブジェクトが必要です。
は今

<permission> 

要素が必要とされているXMLファイルがあります。
私はオブジェクトをマージすることができましたが(私が欲しかったのではありませんでしたが)、私はそれらのうちの1つにアクセスできませんでした。

stdClass Object ( 
    [@attributes] => Array ([name] => a title) 
    [permission] => Array ([0] => administrator) 
) 


はだから今、私の質問はどのようにアクセスすることです:

(object) array_merge(
        (array) $loadedXml->attributes(), 
        (array) $loadedXml->children() 
        ); 


これは私がしますprint_r()から取得されるものです:

は、私はこのコードを使用し、私のオブジェクトをマージするには@attributesメソッドと配列を[@attributes]からメインオブジェクトに移動する方法は?

答えて

1

可能な方法の1

$attr = '@attributes'; 
var_dump($obj->$attr); 

プロパティ

foreach ($obj->$attr as $key=>$val) 
{ 
    $obj->$key = $val; 
} 
unset($obj->$attr); 
+0

感謝:) を@attributeを移動するには、これは私がまさに必要でした! :) – tftd

関連する問題