public function __construct($type, $tag_value, $tag_name, $tag_settings = array())
 {
     $this->setType($type)->setXmlValue($tag_value instanceof SimpleXMLElement ? Helper::getContent($tag_value) : $tag_value)->setName($tag_name);
     if ($tag_value instanceof SimpleXMLElement) {
         $this->setXml($tag_value);
     }
     if (!is_null($tag_settings)) {
         $this->setSettings($tag_settings);
     }
     $this->init();
     if (false === $this->isEmpty) {
         $this->parse();
     }
 }