//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>
但我得到的更像是这样的东西
<xml>
<my_elements>
<my_element>
<something>element_1</something>
<something>element_2</something>
<something>element_3</something>
</my_element>
</my_elements>
</xml>
使用具有相同名称的addChild时是否可以创建单独的子节点?
解决方法:
是的,您只需要将子项添加到新添加的元素,而不是现有元素.见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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。