Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Как из html строки взять текст без тегов???   Найти похожие ветки 

 
Луарвик   (2005-03-06 01:58) [0]

Пример: строка "<p><strong><font color="#FF0000" face="fuckinfont">Твикаем XP</font></strong></p>"
А нужно получить лишь "Твикаем XP"


 
SergP ©   (2005-03-06 02:11) [1]

Типа так:

while pos("<",s)>0 do
delete(s,pos("<",s),pos(">",s)-pos("<",s)+1);

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


 
Луарвик   (2005-03-06 02:23) [2]

Благодарю.
Все таки есть еще на форуме Программеры...


 
GanibalLector ©   (2005-03-06 02:24) [3]

См.темы "Конечные автоматы и регулярные выражения".
В Бакнелле этой теме посвящено порядка 80 страниц.Занятное чтиво ;)


 
vertal ©   (2005-03-06 02:24) [4]

Здесь надо осторожнее. Если заранее известно, что в этом HTML нет скриптов, комментариев, таблиц стилей, в строках- закавыченных значениях атрибутов тегов нет символов "<" и ">" , то можно и через Pos. А если программа должна корректно обрабатывать корректный HTML - код произвольной структуры, то нужно пропускать, то есть не реагировать на эти скобки, внутри этих элементов. Например, вот код, который ищет конец тега

const
 Quotes :Set Of Char = ["""","""];
   ...

             while (Result <> nil) and not (Result^ in [ #0, ">"]) do
             begin
               while not (Result^ in (Quotes + [">",#0])) do Inc(Result);
               if Result^ in Quotes then
                 Result := StrScan(Result + 1, Result^);
               if (Result <> nil) and (Result^ <> ">") then inc(Result);
             end;

При начале выполнения этого фрагмента Result типа PChar указывает на символ, следующий за именем тега. После его выполнения Result указывает на завершающий определение тега символ ">", или Result = nil или Result^ = #0 , если завершение определения тега было не найдено.


 
Луарвик   (2005-03-06 02:28) [5]

Пасибо, но я говорил именно про строки. Короткие, не несущие в себе таблиц и прочих структур...


 
vertal ©   (2005-03-06 02:48) [6]

Кстати, в HTML целый документ спокойно может быть записан в одну строку, на его отображение это не повлияет, некоторые оптимизаторы могут так над ним извращаться. Но дело конечно ваше. И еще - если строка большая, то вместо delete быстрее использовать копирование того, что остается от строки после вырезания тегов, в новый буфер, через StrLCopy или Move.


 
Луарвик   (2005-03-06 13:33) [7]

ОК!



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

Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.088 c
1-1109924793
Alexandre
2005-03-04 11:26
2005.03.20
Скрытие формы


10-1086021834
Bizon's
2004-05-31 20:43
2005.03.20
Первые шаги в создании интерфейсов


14-1109401243
boriskb
2005-02-26 10:00
2005.03.20
Намедни был на концерте С. Альтова.


1-1109747467
GH@ST
2005-03-02 10:11
2005.03.20
Нужна функция перекодирования строки из win в dos


1-1110027236
Checist [root]
2005-03-05 15:53
2005.03.20
И снова TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский