/**
  * Build feed
  *
  * @access public
  * @param  string $filename
  * @return string
  */
 public function build($filename = '')
 {
     $this->helper = new AtomHelper($this->getDocument());
     $this->feedElement = $this->getDocument()->createElement('feed');
     $this->feedElement->setAttributeNodeNS(new DomAttr('xmlns', 'http://www.w3.org/2005/Atom'));
     $generator = $this->getDocument()->createElement('generator', 'PicoFeed');
     $generator->setAttribute('uri', 'https://github.com/fguillot/picoFeed');
     $this->feedElement->appendChild($generator);
     $this->helper->buildTitle($this->feedElement, $this->feedTitle)->buildId($this->feedElement, $this->feedUrl)->buildDate($this->feedElement, $this->feedDate)->buildLink($this->feedElement, $this->siteUrl)->buildLink($this->feedElement, $this->feedUrl, 'self', 'application/atom+xml')->buildAuthor($this->feedElement, $this->authorName, $this->authorEmail, $this->authorUrl);
     foreach ($this->items as $item) {
         $this->feedElement->appendChild($item->build());
     }
     $this->getDocument()->appendChild($this->feedElement);
     if ($filename !== '') {
         $this->getDocument()->save($filename);
     }
     return $this->getDocument()->saveXML();
 }
 /**
  * Build item
  *
  * @access public
  * @return DOMElement
  */
 public function build()
 {
     $this->itemElement = $this->feedBuilder->getDocument()->createElement('entry');
     $this->helper = new AtomHelper($this->feedBuilder->getDocument());
     if (!empty($this->itemId)) {
         $this->helper->buildId($this->itemElement, $this->itemId);
     } else {
         $this->helper->buildId($this->itemElement, $this->itemUrl);
     }
     $this->helper->buildTitle($this->itemElement, $this->itemTitle)->buildLink($this->itemElement, $this->itemUrl)->buildDate($this->itemElement, $this->itemUpdatedDate, 'updated')->buildDate($this->itemElement, $this->itemPublishedDate, 'published')->buildAuthor($this->itemElement, $this->authorName, $this->authorEmail, $this->authorUrl);
     if (!empty($this->itemSummary)) {
         $this->helper->buildNode($this->itemElement, 'summary', $this->itemSummary);
     }
     if (!empty($this->itemContent)) {
         $node = $this->feedBuilder->getDocument()->createElement('content');
         $node->setAttribute('type', 'html');
         $node->appendChild($this->feedBuilder->getDocument()->createCDATASection($this->itemContent));
         $this->itemElement->appendChild($node);
     }
     return $this->itemElement;
 }