public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'LINK': if (!$value) { if ($link = $element->getAttrib('HREF')) { $element->shouldStripTags(true); $element->setValue($link); } } parent::addElement($element); break; case 'enclosure': $this->enclosure = $element; $this->enclosures[] = $element; break; case 'image': $this->images[] = $element; break; case 'CATEGORY': $name = strtolower($name); array_push($this->{$name}, $value); break; case 'PUBDATE': case 'DC:DATE': case 'PUBLISHED': case 'UPDATED': if ($value = $element->value()) { try { if ($date = new DateTime($value)) { $this->pubDate = $date; } } catch (Exception $e) { } } break; case 'AUTHOR': if ($name = $element->getProperty('name')) { $this->author = $name; } else { parent::addElement($element); } break; default: parent::addElement($element); break; } }