private String getAttributeValue() throws IOException {
        StringBuilder value = new StringBuilder();
        stream.mark(1);
        byte quote = read();
        if (contains(QUOTE, quote)) {
            for (byte b = getLowerCaseChar(); b != quote; b = getLowerCaseChar()) {
                value.append((char) b);
            }
        } else {
            stream.reset();
            for (byte b = getLowerCaseChar(); !contains(SPACE_OR_TAG_END, b);
                    b = getLowerCaseChar()) {
                value.append((char) b);
                stream.mark(1);
            }
            stream.reset(); // unread the space or tag end
        }
        return value.toString();
    }
Read an attribute from the stream

@return the attribute as a Map.Entry, where the key is the attribute's name and
the value is the attribute's value. If there is no attribute, return null
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/charsetdetector/PreScanner.java