Wenn davon ausgegangen werden kann, dass es sich um valides XHTML und damit XML handelt
Ja, das was zusätzlich an wirklichem HTML eingegeben wird, das sollte als korrekt vorausgesetzt werden können.
dann könntest du es als XML parsen lassen, und dann das daraus entstehende DOM durchlaufen, und dir dabei die Vorfahrenelemente der Textknoten anschauen.
So wirklich XML ist es halt nicht, da der reine Text kein XML ist.
Ein Beispiel:
Der Besucher gibt normalerweise einfach nur Text ein. So wie hier. Bisher wird der ganze Block in einen Absatz eingeschlossen.
<span ...>jetzt will jemand Text anders auszeichnen so wie hier. Das passt in einen Absatz, hier würde das Verfahren noch funktionieren.</span>
<table>...Dann baut jemand eine Tabelle ein. Die macht den Absatz kaputt. Das heißt die Automatik sollte hier vor dem table Tag den Absatz schließen und ihn danach wieder öffnen.</table>
<ul><li>Selbes gilt für Listen. Auch dann sollte der Absatz vorher geschlossen werden. Natürlich nur sofern grad einer offen ist, hier ist das ja nicht der Fall.</li></ul>
Dann gehts wieder mit Text weiter, der wieder in einem Absatz stehen soll.
Ich könnte natürlich die irrsten Basteleien veranstalten, aber ich glaube noch an was brauchbares das ich auch in zwei Wochen noch verstehe :-)
Ich bräuchte also eine Art Parser, der mir sagt hier kommt erst mal einfach nur Text ohne Element (statt einen Fehler auszugeben), dann kommt ne Tabelle (die ich einfach übernehme), dann kommt eine Liste und danach wieder nur reiner Text.