hi
ich brauche eine procedure die prüft, ob das zeichen "Index" des Textes "Text" in einem
HTML-Tag liegt oder nich.
hier mein versuch:
Delphi-Quellcode:
function isHTMLTag(Text:
String;
Index: Integer): Boolean;
var Schluss: Char;
begin
//Anfang
if Text[
Index]='
<'
then
begin
//ist Schluss-Tag?
if Text[
Index+1]='
/'
then Inc(
Index);
//Komplex oder Einfach?
if (PosEx('
',Text,
Index)<PosEx('
>',Text,
Index))
and (PosEx('
',Text,
Index)>0)
then Schluss:='
'
else Schluss:='
>';
//Abfrage
Result:=HTMLIdent(copy(Text,
Index+1,PosEx(Schluss,Text,
Index)-
Index-1));
end
else if Text[
Index]='
>'
//von neuem aufrufen mit indes des Anfangs
then Result:=isHTMLTag(Text,LastDelimiter('
<',copy(Text,1,
Index)))
else if Text[
Index]='
/'
//Html und XHtml-Konform
then Result:=(Text[
Index-1]='
<')
xor (Text[
Index+1]='
>')
//im tag?
else Result:=LastDelimiter('
<',copy(Text,1,
Index)) > LastDelimiter('
>',copy(Text,1,
Index));
end;
was noch fehlt:
es erkennt keine kommentare.
hat da einer ne idee wie das gehen könnte?
natürlich siond auch weitere verbesserungen erwünscht