protected function getElementsByTagName($nodes, $tagName, $combinator = ' ')
{
$founds = array();
foreach ($nodes as $node) {
switch ($combinator) {
case ' ':
foreach ($node->getElementsByTagName($tagName) as $element) {
$founds[] = $element;
}
break;
case '>':
foreach ($node->childNodes as $element) {
if ($tagName == $element->nodeName) {
$founds[] = $element;
}
}
break;
case '+':
$element = $node->nextSibling;
if (isset($element->nodeName) and $element->nodeName == '#text') {
$element = $element->nextSibling;
}
if ($element && $tagName == $element->nodeName) {
$founds[] = $element;
}
break;
case ':first-child':
foreach ($node->getElementsByTagName($tagName) as $element) {
if (count($founds) == 0) {
$founds[] = $element;
}
}
break;
}
}
return $founds;
}