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);
}