public function get()

in src/Facebook/InstantArticles/Transformer/Getters/NextSiblingElementGetter.php [47:74]


    public function get($node)
    {
        Type::enforce($node, 'DOMNode');
        $elements = self::findAll($node, $this->selector);
        if (!empty($elements) && $elements->item(0)) {
            $element = $elements->item(0);
            do {
                $element = $element->nextSibling;
            } while ($element !== null && !Type::is($element, 'DOMElement'));

            if ($element && Type::is($element, 'DOMElement')) {
                if ($this->siblingSelector) {
                    $siblings = self::findAll($element, $this->siblingSelector);
                    if (!empty($siblings) && $siblings->item(0)) {
                        $siblingElement = $siblings->item(0);
                    } else {
                        // Returns null because sibling content doesn't match
                        return null;
                    }
                } else {
                    $siblingElement = $element;
                }
                Transformer::markAsProcessed($siblingElement);
                return Transformer::cloneNode($siblingElement);
            }
        }
        return null;
    }