Вы можете извлечь список из WHATWG HTML Living Standard .Или, если хотите, спецификацию W3C HTML 5 или последующий черновик .Согласно Википедии , конфликт в последнее время разрешен в пользу WHATWG, поэтому вы, вероятно, захотите перейти к первому.
В любом случае, обратите особое внимание на подзаголовок "Пропустить тег в text / html "в описании каждого элемента.Но вам нужно внимательно прочитать документ, чтобы понять все тонкости синтаксического анализа HTML.
Примечание. Конечные теги могут быть не только опущены.Есть также элементы, чей тег open можно опустить.(Классическим примером является <tbody>
, который вряд ли когда-либо физически присутствует в документе HTML, но есть множество других. Например, <head>
.) Тот факт, что открытый тег элемента был опущен, не вызываетпропуск закрывающего тега элемента, хотя обычно это так.Таким образом, вы не можете сделать это просто списком пропущенных тегов;вам также необходимо принять во внимание правила содержания элементов.
Кроме того, хотя алгоритм полного разбора удивительно сложен даже для действительных документов, стандартный алгоритм и реальные парсеры HTML еще сложнее, потому что онистарайтесь изящно работать с веб-страницами, которые не соответствуют стандарту.