diff options
author | Asmir Mustafic <[email protected]> | 2016-08-17 20:18:58 +0200 |
---|---|---|
committer | Asmir Mustafic <[email protected]> | 2016-08-17 20:18:58 +0200 |
commit | 5851989629b8dfe390b69d6bc509358183c3e6b4 (patch) | |
tree | 97177a0308bb3d8673e7a8694682cb47e7bc16cf /src/HTML5/Parser | |
parent | 9da7ec0397ebb0e91139b76f4d248ba09cc0c778 (diff) |
In XML mode, tags are case sensitive
Fixes #114
Diffstat (limited to 'src/HTML5/Parser')
-rw-r--r-- | src/HTML5/Parser/Tokenizer.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/HTML5/Parser/Tokenizer.php b/src/HTML5/Parser/Tokenizer.php index 301addf..02b2aff 100644 --- a/src/HTML5/Parser/Tokenizer.php +++ b/src/HTML5/Parser/Tokenizer.php @@ -43,6 +43,10 @@ class Tokenizer protected $textMode = 0; // TEXTMODE_NORMAL; protected $untilTag = null; + const CONFORMANT_XML = 'xml'; + const CONFORMANT_HTML = 'html'; + protected $mode = self::CONFORMANT_HTML; + const WHITE = "\t\n\f "; /** @@ -57,11 +61,13 @@ class Tokenizer * @param \Masterminds\HTML5\Parser\EventHandler $eventHandler * An event handler, initialized and ready to receive * events. + * @param string $mode */ - public function __construct($scanner, $eventHandler) + public function __construct($scanner, $eventHandler, $mode = self::CONFORMANT_HTML) { $this->scanner = $scanner; $this->events = $eventHandler; + $this->mode = $mode; } /** @@ -335,7 +341,8 @@ class Tokenizer return $this->bogusComment('</'); } - $name = strtolower($this->scanner->charsUntil("\n\f \t>")); + $name = $this->scanner->charsUntil("\n\f \t>"); + $name = $this->mode === self::CONFORMANT_XML ? $name: strtolower($name); // Trash whitespace. $this->scanner->whitespace(); @@ -362,7 +369,8 @@ class Tokenizer } // We know this is at least one char. - $name = strtolower($this->scanner->charsWhile(":_-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + $name = $this->scanner->charsWhile(":_-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); + $name = $this->mode === self::CONFORMANT_XML ? $name : strtolower($name); $attributes = array(); $selfClose = false; |