Удалить все, что внутри тегов <>
и сами теги
то, что осталось - текст
Нужно из html кода страницы выдрать только текст, без тегов.
Например есть строка
Если пытаться находить позицию в строке, то нужно задавать что искать, к примеру, найти позицию строкиКод HTML:<код страницы> <td align='right' width='100'>нужный текст</td> <продолжение кода страницы>передвинуться на длину этой строки и мы добрались к результату, но мешаю одинарные кавычки.Код HTML:<td align='right' width='100'>
Можно ли их как-то экранировать?
Или какой ещё есть способ?
Stop Child Abuse
"Те, кто преуспевает через какое-то время - это те, кто наиболее настойчив при изучении того, что ему подходит больше всего, и затем строго применяет свои методы, даже когда что-то идет не так." Джей Кэппель
http://www.domotronika.ks.ua
Удалить все, что внутри тегов <>
и сами теги
то, что осталось - текст
uses mshtml, activex;
procedure GetHtmlCode(WebBrowser: TWebBrowser; FileName: string);
var
htmlDoc: IHtmlDocument2;
PersistFile: IPersistFile;
begin
htmlDoc := WebBrowser.document as IHtmlDocument2;
PersistFile := HTMLDoc as IPersistFile;
PersistFile.save(StringToOleStr(FileName), true);
и второй способ
var
Document: IHTMLDocument2;
begin
Document := WB.Document as IHtmlDocument2;
if Document < > nil then
Memo1.Text := (Document.all.Item(NULL, 0) as IHTMLElement).OuterHTML;
и третий способ (лично мной написанный), тут правда надо будет добавлять пробелы и перенос строки, если хочешь получить форматированный текст.
function GetOuterHTML(htmlSource : string) : string;
var loop : integer;
isCopy : boolean;
begin
isCopy := true;
Result := '';
for loop := 1 to length(htmlSource) do
begin
if htmlSource[loop] = '<' then
isCopy := false;
if isCopy then
Result := Result + htmlSource[loop];
if htmlSource[loop] = '>' then
begin
isCopy := true;
Result := Result + ' ';
end;
end;
end;
Последний раз редактировалось freeman; 08.08.2008 в 20:25.
и чем мешают одинарные кавычки? если тебе нужно сделать if или что-то другое для поиска, то пишешь их пять штук что-то наподобии if str = ''''' then, должно прохаваться. Или же if str = char(#ACSII код кавычки), собственно так и можно экранировать.