public function getSuitableParent($checkName = true, array $additionalTags = array(), $maxDeep = self::MAX_DEEP, $strict = false)
{
$parentNode = null;
if ($this->getParent() instanceof AbstractNodeHandler) {
$parentTags = $strict ? $additionalTags : $this->getSuitableParentTags($additionalTags);
$parentNode = $this->getParent()->getNode();
while ($maxDeep-- > 0 && $parentNode instanceof \DOMElement && !empty($parentNode->nodeName) && (!preg_match('/' . implode('|', $parentTags) . '/i', $parentNode->nodeName) || $checkName && preg_match('/' . implode('|', $parentTags) . '/i', $parentNode->nodeName) && (!$parentNode->hasAttribute('name') || $parentNode->getAttribute('name') === ''))) {
$parentNode = $parentNode->parentNode;
}
if ($parentNode instanceof \DOMElement) {
$parentNode = $this->getDomDocumentHandler()->getHandler($parentNode);
} else {
$parentNode = null;
}
}
return $parentNode;
}