public function listXmlAction() { $baseStr = "<?xml version='1.0' standalone='yes'?><rows></rows>"; $xml = new SimpleXMLElement($baseStr); $updateFile = new UpdateFile(); $updateFileIterator = $updateFile->getIteratorActive(); $alterTable = new AlterTable(); $channel = null; $ctr = 1; foreach ($updateFileIterator as $item) { if ($channel === null || $channel != $item->channel) { $channel = $item->channel; $channelXml = $xml->addChild('row', $channel); $channelXml->addAttribute('id', $ctr++); $channelXml->addChild('cell', $channel); } $parent = $channelXml->addChild('row'); $parent->addAttribute('id', $item->updateFileId); $parent->addChild('cell', $item->name . ' (v' . $item->version . ')'); $parent->addChild('cell', $item->status); $parent->addChild('cell', ''); } header('content-type: text/xml'); $this->view->content = $xml->asXml(); $this->render('list-xml'); }