Суровый. Перейти
HTML не является XML. XHTML - это XML. Большинство сайтов на HTML; некоторые из них XHTML. В XHTML все теги должны быть закрыты (или не иметь тела, которое все еще закрыто).
Если вы хотите написать HTML-парсер в качестве учебного эксперимента, тогда сделайте это. Если вы хотите написать следующий «Greaterest HTML parserer», тогда оставьте его. Apache (или кто-то еще) побеждает; важная информация: вы не знаете больше, чем большие группы, специализирующиеся на разборе HTML.
Чтобы ответить на вопрос "Как мне с этим бороться?" Прочитайте спецификацию W3C в HTML . Это отвечает на ваш вопрос. Если ваш ответ «но я тоже не хочу», то вы на самом деле говорите: «Я ленивая тупица, которая хочет притворяться, что учится». Если это так, я предлагаю вам удалить пост и двигаться дальше; У команды Microsoft IE вероятно есть несколько документов, которые могут вас заинтересовать.
Менее резкий ответ
HTML не легко разобрать. Как правило, вам не нужны элементы головы или тела, и многие теги не нужно закрывать. Основное правило при разборе HTML: , если вы встретите новый элемент блока, автоматически закройте предыдущий элемент блока . Для этого нельзя использовать стандартный синтаксический анализатор XML, поскольку HTML не является XML.
Подобно XML, вам нужно будет разбить ваш документ на элементы, в том числе на свободные текстовые элементы.
XHTML намного проще, потому что это должен быть правильно сформированный XML. Для этого вы можете использовать синтаксический анализатор XML.