Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

HTML фильтр   Найти похожие ветки 

 
falk   (2003-12-31 18:05) [0]

Создаётся переменная TStringList,в неё загружается HTML файл
Как отфильтровать HTML код т.е. что-бы остался только текст?
Применение TMemo исключено.


 
Stilgar ©   (2003-12-31 19:17) [1]

Предлагаю удалять все между < и >. Правда так можно удалить и сам текст. Лучше учесть особенности HTML (на изучение которого много времени не понадобится).


 
Ihor Osov'yak ©   (2003-12-31 19:18) [2]

Вместо TStringList используй TWebBrowser. Если нужно "невизуальное" решение, то создавай IHtmlDocument (см UILessParser на http://www.euromind.com/iedelphi)
Затем от тега body получаешь IHtmlElement, а там есть свойство innerText.
Это то, что тебе нужно.

С Наступающим Новым Годом! Удачи.


 
хз ©   (2003-12-31 19:32) [3]

Может это поможет?


Function StripHTMLorNonHTML(Const S:String;WantHTML:Boolean):String;
Var
X,TagCnt:Integer;
ResChar,SrcChar:PChar;
Begin
TagCnt:=0;
SetLength(Result,Length(S));
If Length(S)=0 Then
Exit;
ResChar:=@Result[1];
SrcChar:=@S[1];
For X:=1 To Length(S) Do
Begin
Case SrcChar^ Of
"<":
Begin
Inc(TagCnt);
If WantHTML And (TagCnt=1) Then
Begin
ResChar^:="<";
Inc(ResChar);
End;
End;
">":
Begin
Dec(TagCnt);
If WantHTML And (TagCnt=0) Then
Begin
ResChar^:=">";
Inc(ResChar);
End;
End;
Else
Case WantHTML Of
False:
If TagCnt<=0 Then
Begin
ResChar^:=SrcChar^;
Inc(ResChar);
TagCnt:=0;
End;
True:
If TagCnt>=1 Then
Begin
ResChar^:=SrcChar^;
Inc(ResChar);
End
Else
If TagCnt<0 Then
TagCnt:=0;
End;
End;
Inc(SrcChar);
End;
SetLength(Result,ResChar-PChar(@Result[1]));
Result:=Result;
End;

Function ExtractHTML(S:String):String;
Begin
Result:=StripHTMLorNonHTML(S,True);
End;

Function ExtractNonHTML(S:String):String;
Begin
Result:=StripHTMLorNonHTML(S,False);
End;


 
TButton ©   (2003-12-31 20:11) [4]


>Предлагаю удалять все между < и >. Правда так можно удалить и
>сам текст. Лучше учесть особенности HTML (на изучение которого
>много времени не понадобится).

нельзя удалить сам текст, для вставки в HTML документ "<" и ">" используются специальные фигулины типа &9001; и &9002; они же


 
falk   (2004-01-03 14:26) [5]

Большое всем спасибо.
Проблема решена способом
предложенным X3.
С наступившим всех.



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
1-49500
Gnom
2004-01-03 17:30
2004.01.16
редактирование текста


1-49485
BlackLord2003
2003-12-29 19:12
2004.01.16
Кодировка


1-49626
MagaSoft
2004-01-03 22:29
2004.01.16
Директория


1-49560
miracle_fox
2004-01-04 23:47
2004.01.16
есть фраза hello world


14-49689
Жук
2003-12-26 10:53
2004.01.16
---|Ветка была без названия|---