If $node is not defined, getElementsByTagsName is undefined.
I propose this fix
public static function getNodesName($node, $name)
{
if (strpos($name, ':') !== false) {
list(, $localname) = explode(':', $name);
$nodes = $node->getElementsByTagNameNS('*', $localname);
} else {
if (isset($node->length)) {
$nodes = $node->getElementsByTagName($name);
} else {
$nodes = new stdClass();
$nodes->length = 0;
}
}
return self::filterNodeListByName($nodes, $name);
}
If $node is not defined, getElementsByTagsName is undefined.
I propose this fix