Найти на форуме:
Loading




+ Ответить в теме
Показано с 1 по 6 из 6

Тема: Delphi html parsing

  1. #1
    developer
    шахматист
    Александр Хранитель Александр Хранитель Александр Хранитель Александр Хранитель Александр Хранитель Александр Хранитель Александр Хранитель Аватар для Александр

    Регистрация
    16.01.2007
    Адрес
    Germany
    Сообщений
    2,571
    Сказал(а) спасибо
    147
    Поблагодарили 628 раз(а) в 195 сообщениях

    Вопрос Delphi html parsing

    Нужно из html кода страницы выдрать только текст, без тегов.
    Например есть строка
    Код HTML:
    <код страницы>
    <td align='right' width='100'>нужный текст</td>
    <продолжение кода страницы> 
    Если пытаться находить позицию в строке, то нужно задавать что искать, к примеру, найти позицию строки
    Код HTML:
    <td align='right' width='100'> 
    передвинуться на длину этой строки и мы добрались к результату, но мешаю одинарные кавычки.
    Можно ли их как-то экранировать?
    Или какой ещё есть способ?
    Stop Child Abuse


    "Те, кто преуспевает через какое-то время - это те, кто наиболее настойчив при изучении того, что ему подходит больше всего, и затем строго применяет свои методы, даже когда что-то идет не так." Джей Кэппель

    http://www.domotronika.ks.ua

  2. #2
    Грозный Супер-Модератор lucky Святоша lucky Святоша lucky Святоша lucky Святоша lucky Святоша lucky Святоша lucky Святоша lucky Святоша lucky Святоша lucky Святоша lucky Святоша Аватар для lucky

    Регистрация
    20.09.2006
    Сообщений
    5,360
    Сказал(а) спасибо
    5,001
    Поблагодарили 3,623 раз(а) в 1,006 сообщениях

    По умолчанию

    Удалить все, что внутри тегов <>
    и сами теги

    то, что осталось - текст

  3. #3
    Старожил freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества

    Регистрация
    17.05.2007
    Сообщений
    888
    Сказал(а) спасибо
    8
    Поблагодарили 106 раз(а) в 30 сообщениях

    По умолчанию

    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);

  4. #4
    Старожил freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества

    Регистрация
    17.05.2007
    Сообщений
    888
    Сказал(а) спасибо
    8
    Поблагодарили 106 раз(а) в 30 сообщениях

    По умолчанию

    и второй способ

    var
    Document: IHTMLDocument2;
    begin
    Document := WB.Document as IHtmlDocument2;
    if Document < > nil then
    Memo1.Text := (Document.all.Item(NULL, 0) as IHTMLElement).OuterHTML;

  5. #5
    Старожил freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества

    Регистрация
    17.05.2007
    Сообщений
    888
    Сказал(а) спасибо
    8
    Поблагодарили 106 раз(а) в 30 сообщениях

    По умолчанию

    и третий способ (лично мной написанный), тут правда надо будет добавлять пробелы и перенос строки, если хочешь получить форматированный текст.

    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.

  6. #6
    Старожил freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества freeman Последняя надежда человечества

    Регистрация
    17.05.2007
    Сообщений
    888
    Сказал(а) спасибо
    8
    Поблагодарили 106 раз(а) в 30 сообщениях

    По умолчанию

    и чем мешают одинарные кавычки? если тебе нужно сделать if или что-то другое для поиска, то пишешь их пять штук что-то наподобии if str = ''''' then, должно прохаваться. Или же if str = char(#ACSII код кавычки), собственно так и можно экранировать.

+ Ответить в теме

Похожие темы

  1. Delphi - нужна помощь
    от Joremar в разделе Администрирование и программирование
    Ответов: 1
    Последнее сообщение: 21.11.2009, 13:28
  2. Видеообучение Delphi
    от skinner в разделе Администрирование и программирование
    Ответов: 8
    Последнее сообщение: 18.03.2008, 23:25
  3. Ответов: 12
    Последнее сообщение: 29.10.2007, 19:43
  4. Delphi 2007: первые впечатления
    от ALEKSEY в разделе Администрирование и программирование
    Ответов: 1
    Последнее сообщение: 19.05.2007, 01:27

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Херсонский ТОП   Рейтинг@Mail.ru МЕТА - Украина. Рейтинг сайтов

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112