2011-11-10 3 views
3
//create a simple xml object 
$xml = new SimpleXMLElement('some valid xml'); 

//add a my_elements node 
$xml->addChild('my_elements'); 

//an array of elements that will be added to to my_elments 
$my_elements = array('element_1', 'element_2', 'element_3'); 

foreach($my_elements as $element){ 
    //my_element is only added once as shown below 
    $xml->my_elements->addChild('my_element'); 

    $xml->my_elements->my_element->addChild('something', $element); 
} 

私がこのような何か(読みやすくするためにXMLに示す)

<xml> 
    <my_elements> 
     <my_element> 
      <something>element_1</something> 
     </my_element> 
     <my_element> 
      <something>element_2</something> 
     </my_element> 
     <my_element> 
      <something>element_3</something> 
     </my_element> 
    </my_elements> 
</xml> 

であるように見えるしたい何でも、私は何を取得していますことはありますこのようなもの

addChildを同じ名前で使用すると、別の子ノードを作成することはできますか?

+0

はあなたがいない既存のものに、新しい追加された要素にチャイルズを追加する必要があります。 – hakre

+0

返された要素を使用して、私の答えを見てください – hakre

答えて

5

はい、既存の要素ではなく、新しい追加要素に子要素を追加するだけで済みます。 http://php.net/manual/en/simplexmlelement.addchild.phpを参照してください:

foreach($my_elements as $element){ 
    //my_element is only added once as shown below 
    $new_my_element = $xml->my_elements->addChild('my_element'); 
    $new_my_element->addChild('something', $element); 
}