protected function lastOfType()
{
$matches = $this->candidateList();
$found = new \SplObjectStorage();
foreach ($matches as $item) {
$type = $item->tagName;
$parent = $item->parentNode;
for ($i = $parent->childNodes->length - 1; $i >= 0; --$i) {
$kid = $parent->childNodes->item($i);
if ($kid->nodeType == XML_ELEMENT_NODE && $kid->tagName == $type) {
if (!$found->contains($kid)) {
$found->attach($kid);
}
break;
}
}
}
$this->matches = $found;
}