public function parse() { if ($this->getProtocol() === 'RSS') { // channel $parser = new Parser($this->xml->channel, $this, 'channel'); $channel = $parser->getData(); $channel->protocol = strtolower($this->getProtocol()); $this->setData($channel); // items $this->items = new XMLObjectsCollection($this->xml->channel); foreach ($this->items as $i => $item) { $parser = new Parser($item, $this, 'item'); $item = $parser->getData(); $item->protocol = strtolower($this->getProtocol()); $item->id = $this->id . '_' . Helper::encodeStringToId($item->title->content); $this->items->addData($i, $item); } } elseif ($this->getProtocol() === 'ATOM') { // entry $parser = new Parser($this->xml, $this, 'feed'); $channel = $parser->getData(); $channel->protocol = strtolower($this->getProtocol()); $this->setData($channel); // entry $this->items = new XMLObjectsCollection($this->xml); foreach ($this->items as $i => $item) { $parser = new Parser($item, $this, 'feed'); $item = $parser->getData(); $item->protocol = strtolower($this->getProtocol()); $item->id = $this->id . '_' . Helper::encodeStringToId($item->title->content); $this->items->addData($i, $item); } } }