Naja, du könntest den Text zeichenweise durchgehen.
Für jedes '<' erhöhst du einen Counter um 1.
Für jedes '/>' oder '</' verringerst du ihn um 1.
Für jedes "\n" fügst du ein
ein,
falls der Counter 0 ist.
Im Fall von '</' wird natürlich nicht 1 zum Counter dazugezählt.
Damit solltest du nur
bekommen, wenn du ausserhalb eines
HTML-Blocks bist.
Ungetestet.