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; }
public function get($node) { $elements = self::findAll($node, $this->selector); if (!empty($elements) && property_exists($elements, 'length') && $elements->length !== 0) { Transformer::markAsProcessed($elements->item(0)); return Transformer::cloneNode($elements->item(0)); } return null; }
public function get($node) { $elements = self::findAll($node, $this->selector); if (!empty($elements)) { Transformer::markAsProcessed($elements->item(0)); return Transformer::cloneNode($elements->item(0)); } return null; }
public function get($node) { $element = parent::get($node); if ($element) { $fragment = $element->ownerDocument->createDocumentFragment(); foreach ($element->childNodes as $child) { Transformer::markAsProcessed($child); $fragment->appendChild(Transformer::cloneNode($child)); } if ($fragment->hasChildNodes()) { return $fragment; } } return null; }