Hmm wenn ich Zeit hab schreib ich das schnell..
So funktionierts (teorie):
Der Parser liest den String Zeichen für Zeichen
Wenn er "<" liest beginnt er die nachfolgenden zeichen als Tag-strings zu sammeln
Wenn hinter dem < kein Buchstabe/Zahl/oder "/" folgt wandelt er das Zeichen um in ein Sonderzeichen oder löscht es ganz.
Wenn "<image <" liest löscht/validiert er "<image " zu "image " und gibt den String zurück (hängt ihn an den Hauptstring an) und beginnt einen neuen tag-string
Wenn er ">" auserhalb eines tags steht valieidert er dieses zeichen (löschen oder in sonderzeichen umwandeln)
Hier eine Liste der Sonderzeichen und ihre Maskierung in Html:
http://selfhtml.teamone.de/html/allgemein/zeichen.htm