public AbstractElement(StringBuilder str) {

        element = new String(str);

        element = element.replaceAll("&nbsp;"," ").replaceAll("\\s+", " ");//чистим управляющие символы и двойные пробелы
        //TODO реализовать очистку спецсимволов html
        element = element.trim();
        charArray = element.toCharArray();
        if (element.length() != 0) {
            if (element.indexOf("</") == 0) {
                type = ElementType.ENDTAG;
                name = element.substring(2, str.length() - 1);
            } else if (element.indexOf("<!--") != -1) {
                type = ElementType.COMENTS;
                name = element;
            } else if (element.indexOf("<?") == 0) {
                type = ElementType.UNKNOWN;
            } else if (element.indexOf("<!") == 0) {
                type = ElementType.UNKNOWN;
            } else if (element.lastIndexOf("/>") != -1) {
                type = ElementType.SINGLTAG;
                parseTag(element);
            } else if (element.indexOf("<") == 0) {
                type = ElementType.STARTTAG;
                parseTag(element);
            } else {
                type = ElementType.CHARACTERS;
                name = element;
            }
        } else {
            type = ElementType.EMPTY;
        }
    }