//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);
}
What I would like this to look like is something like this(shown in xml for ease of reading)
<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>
But what I am getting is something more like this
<xml>
<my_elements>
<my_element>
<something>element_1</something>
<something>element_2</something>
<something>element_3</something>
</my_element>
</my_elements>
</xml>
Is it possible to make a separate child node when using addChild with the same name?
Yes, you only need to add the childs to the new added element, not to the existing one. See http://php.net/manual/en/simplexmlelement.addchild.php :