【发布时间】:2018-10-26 04:30:28
【问题描述】:
我有 4 个 SimpleXMLElement 对象从 foreach 循环中获取输出?
在输出到 xml 之前,我需要将 4 个对象组合成 1 个对象。这就是我所坚持的。
$auth_tokens = array('tok1', 'tok2', 'tok3', 'tok4');
foreach($auth_tokens as $auth_token) { // 4 iterations in loop
$response = curl_exec($connection); // API xml response
$xml = simplexml_load_string($response); // loaded xml into object
$entries = $xml->PaginationResult->TotalNumberOfEntries;
$xml = $xml->OrderArray->Order; // Only want this section of each object
if($entries == 0) {
continue;
}
echo '<pre>' . var_export($xml, true) . '</pre><br>';
}
输出:对象的压缩版本
SimpleXMLElement::__set_state(array(
'OrderID' => '1118',
));
SimpleXMLElement::__set_state(array(
'OrderID' => '3916',
));
SimpleXMLElement::__set_state(array(
'OrderID' => '1628',
));
SimpleXMLElement::__set_state(array(
'OrderID' => '3724',
));
4个对象合并后,我将echo $xml->asXml()循环外,可以添加我的父节点。
foreach($auth_tokens as $auth_token) {
// ....
}
$xml = simplexml_load_string("<Orders>$xml</Orders>");
header('content-type: text/xml');
echo $xml->asXML();
我怎样才能将这 4 个对象合并为 1 个而不需要再循环来实现它?
【问题讨论】: