удаление html тегов
От: Socket Ниоткуда http://www.samborsky.com
Дата: 24.08.07 14:38
Оценка:
Прокоментируйте плиз функцию.
Возможно я чтото не учел, или можно сделать быстрее и проще


string strip_tags(const string& s){

    string tmp(s);
    string::size_type idx = 0,idx2 = 0;

    // Ищем символ <
    while( string::npos != (idx = tmp.find("<",idx2)) ){

        // Ищем конец тега
        idx2 = tmp.find("/>",idx);
        if( string::npos == idx2 ) break;

        // Удаляем все м-ду < и >
        tmp.erase( idx,idx2-idx+2 );        
    }

    return tmp;

}

// Вызов
int _tmain(int argc, _TCHAR* argv[]){

    printf( strip_tags("Hello C++<<dedf/>").c_str() );

    return 0;
}
http://www.samborsky.com — мой блог
Re: удаление html тегов
От: PWW  
Дата: 24.08.07 15:50
Оценка:
Здравствуйте, Socket, Вы писали:

S>Прокоментируйте плиз функцию.

S>Возможно я чтото не учел, или можно сделать быстрее и проще

Ты не учел так много что коментировать особо нечего. Для начила изучи
теги HTML, какие бывают и для чего служат. А так возми пяток случайных
страниц из интернета, и почисти их, сразу поймёшь что где ты.
Re: удаление html тегов
От: c-smile Канада http://terrainformatica.com
Дата: 24.08.07 16:07
Оценка:
Здравствуйте, Socket, Вы писали:

S>Прокоментируйте плиз функцию.

S>Возможно я чтото не учел, или можно сделать быстрее и проще

Все зависит от контекста где тебе это надо.

Вот это самое простое решение из (мне) известных HTML/XML scanner/tokenizer
которое позволяет делать html-to-plain-text conversion.
Re: удаление html тегов
От: deadem Россия  
Дата: 27.08.07 16:05
Оценка:
Здравствуйте, Socket, Вы писали:

S>Возможно я чтото не учел

да:

<b>bold text</b>

<a title="<more text>" href="http://more.txt">link</a>

<style>
/* some css code here */
</style>

<script language="JavaScript">
/* some script code here */
</script>


это сходу.
Re[2]: удаление html тегов
От: deadem Россия  
Дата: 27.08.07 16:06
Оценка:
D>Здравствуйте, Socket, Вы писали:

S>>Возможно я чтото не учел

D>это сходу.

а также:
<!-- html комментарий -->
Re: удаление html тегов
От: alzt  
Дата: 28.08.07 09:38
Оценка:
Здравствуйте, Socket, Вы писали:

S>Прокоментируйте плиз функцию.

S>Возможно я чтото не учел, или можно сделать быстрее и проще

S>// Вызов

S>int _tmain(int argc, _TCHAR* argv[]){

S> printf( strip_tags("Hello C++<<dedf/>").c_str() );


S> return 0;

S>}
S>[/ccode]

Код глядеть было лень. Задачу я не понял.
html или xml?
Ещё "<<" непонятно — это опечатка или имеет какой-то специальный смысл.
Проще всего, наверное, будет использовать регулярные выражения, т.к. синтаксис html посложнее приведённого будет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.