@@ -654,10 +654,11 @@ public function parse() {
654
654
}else {
655
655
/* U+0022 QUOTATION MARK (")
656
656
U+0027 APOSTROPHE (')
657
+ U+003C LESS-THAN SIGN (<)
657
658
U+003D EQUALS SIGN (=)
658
659
Parse error. Treat it as per the "anything else" entry
659
660
below. */
660
- if ($ char ==='" ' ||$ char ==="' " ||$ char ==='= ' ) {
661
+ if ($ char ==='" ' ||$ char ==="' " ||$ char ==='< ' || $ char === ' = ' ) {
661
662
$ this ->emitToken (array (
662
663
'type ' =>self ::PARSEERROR ,
663
664
'data ' =>'invalid-character-in-attribute-name '
@@ -733,9 +734,10 @@ public function parse() {
733
734
}else {
734
735
/* U+0022 QUOTATION MARK (")
735
736
U+0027 APOSTROPHE (')
737
+ U+003C LESS-THAN SIGN (<)
736
738
Parse error. Treat it as per the "anything else"
737
739
entry below. */
738
- if ($ char ==='" ' ||$ char ==="' " ) {
740
+ if ($ char ==='" ' ||$ char ==="' " || $ char === ' < ' ) {
739
741
$ this ->emitToken (array (
740
742
'type ' =>self ::PARSEERROR ,
741
743
'data ' =>'invalid-character-in-attribute-name '
@@ -820,9 +822,10 @@ public function parse() {
820
822
}else {
821
823
/* U+0022 QUOTATION MARK (")
822
824
U+0027 APOSTROPHE (')
825
+ U+003C LESS-THAN SIGN(<)
823
826
Parse error. Treat it as per the "anything else"
824
827
entry below. */
825
- if ($ char ==='" ' ||$ char ==="' " ) {
828
+ if ($ char ==='" ' ||$ char ==="' " || $ char === " < " ) {
826
829
$ this ->emitToken (array (
827
830
'type ' =>self ::PARSEERROR ,
828
831
'data ' =>'invalid-character-after-attribute-name '
@@ -894,8 +897,9 @@ public function parse() {
894
897
895
898
}else {
896
899
/* U+003D EQUALS SIGN (=)
900
+ * U+003C LESS-THAN SIGN (<)
897
901
Parse error. Treat it as per the "anything else" entry below. */
898
- if ($ char ==='= ' ) {
902
+ if ($ char ==='= ' || $ char === ' < ' ) {
899
903
$ this ->emitToken (array (
900
904
'type ' =>self ::PARSEERROR ,
901
905
'data ' =>'equals-in-unquoted-attribute-value '