private function extract(\DOMElement $node) { $item = new Record(); foreach (self::$propertiesMapping as $nodeName => $methodName) { $item->{$methodName}($this->getNodeValueByTagName($node, $nodeName)); } if ($date = $this->getNodeValueByTagName($node, 'pubDate')) { $item->setPublicationDate(\DateTime::createFromFormat(\DateTime::RSS, $date)); } $tags = $node->getElementsByTagName('category'); if ($tags->length) { foreach ($tags as $tag) { /** @var \DomElement $tag */ if ($tag->nodeValue) { $item->addTag($tag->nodeValue); } } } return $item; }
private function setTags(\DOMElement $node, Record $item) { $tags = $node->getElementsByTagName('category'); foreach ($tags as $tag) { /** @var \DomElement $tag */ if ($tag->getAttribute('term')) { $item->addTag($tag->getAttribute('label') ?: $tag->getAttribute('term')); } } }