QueryPath\DOMQuery::parents PHP Method

parents() public method

If a selector is present, only matching ancestors will be retrieved.
See also: parent()
See also: siblings()
See also: children()
public parents ( string $selector = null )
$selector string A valid CSS 3 Selector.
    public function parents($selector = null)
    {
        $found = new \SplObjectStorage();
        foreach ($this->matches as $m) {
            while ($m->parentNode->nodeType !== XML_DOCUMENT_NODE) {
                $m = $m->parentNode;
                // Is there any case where parent node is not an element?
                if ($m->nodeType === XML_ELEMENT_NODE) {
                    if (!empty($selector)) {
                        if (QueryPath::with($m, null, $this->options)->is($selector) > 0) {
                            $found->attach($m);
                        }
                    } else {
                        $found->attach($m);
                    }
                }
            }
        }
        return $this->inst($found, null, $this->options);
    }