$name =
$this->scanner->
charsWhile(':_-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
);
$name = self::CONFORMANT_XML ===
$this->mode ?
$name :
strtolower($name);
$attributes = array
();
$selfClose = false;
// Handle attribute parse exceptions here so that we can
// react by trying to build a sensible parse tree.
try { do { $this->scanner->
whitespace();
$this->
attribute($attributes);
} while (!
$this->
isTagEnd($selfClose));
} catch (ParseError
$e) { $selfClose = false;
} $mode =
$this->events->
startTag($name,
$attributes,
$selfClose);
if (is_int($mode)) { $this->
setTextMode($mode,
$name);
} $this->scanner->
consume();