SimpleXML - 添加具有相同名称的孩子

时间:2016-01-18 20:34:30

标签: php xml simplexml

是否可以将具有相同元素的子元素添加到节点?这将在一个循环中完成,如:

    foreach ( $nodes as $node => $value )
    {
        $xml->addChild($node, $value);
    }

这样做,将覆盖具有相同名称的子节点(仅保留最后一个节点)。如果我使用字符串手动放入子节点,而不是像循环中那样的变量,它可以正常工作并且所有节点都在那里。

所以目标就是:

    <response>
        <status>some status</status>
        <status>some status</status>
        <status>some status</status>
    </response>

1 个答案:

答案 0 :(得分:0)

好吧,正如sanderbee指出你的数组结构需要修改但是假设你想得到这样的结果:

<response>
   <status>1st status</status>
   <status>2nd status</status>
   <status>3rd status</status>
</response>

如果您有这样的数组

$newArray = array('1st status', '2nd status', '3rd status');

下面的代码可以为您提供上面的xml结果:

$response = $xml->addChild('response'); // I assume you have the $xml variable

foreach($newArray as $x)
{
  $status = $response->addChild('status',$x);
}