Батенька, Вам нужно непременно изучить методы синт. разбора.
Непременно!
Например, по Вирту "Построение компиляторов":
http://www.ozon.ru/context/detail/id/19133384/

Потому что Вы сейчас пытаетесь, уж извините, решить задачу "с помощью лома и какой-то матери"

Потом можно попробовать построить парсер для корректного XHTML (HTML, который является одновременно правильным XML). И только потом уже...
Но вообще, разбор любого невалидного HTML и построение нормального DOM - это неподъёмная задача для одного человека, не работающего полный рабочий день над этим за зарплату ))
Если хочется поупражняться, то можно и остановиться на уровне разбора XML...
Или таки сконцентрироваться и довести до "выхода" пару-тройку проектиков поменьше (но не пытаться все сразу!!).

Успехов!