Russian Qt Forum

Qt => Общие вопросы => Тема начата: phpCoder от Март 15, 2015, 15:44



Название: Удаление HTML-тэгов
Отправлено: phpCoder от Март 15, 2015, 15:44
Добрый день.
Есть в Qt инструментарий для удаления HTML-тэгов из текста? Наподобие strip_tags из PHP?


Название: Re: Удаление HTML-тэгов
Отправлено: Hrundel от Март 16, 2015, 00:33
QString это же по сути vector. У него и итератор свой есть. Ставишь итератор в начало и проверяешь на ">" и "<". Все что в тэги не входит - пишешь в другой стринг.


Название: Re: Удаление HTML-тэгов
Отправлено: gil9red от Март 16, 2015, 00:37
QString это же по сути vector. У него и итератор свой есть. Ставишь итератор в начало и проверяешь на ">" и "<". Все что в тэги не входит не входит - пишешь в другой стринг.

Тогда можно и регуляркой удалить все теги, главное чтобы регулярка не жадная была :)


Название: Re: Удаление HTML-тэгов
Отправлено: Hrundel от Март 16, 2015, 00:40
Тогда можно и регуляркой удалить все теги, главное чтобы регулярка не жадная была :)

Согласен, но исхожу из того, что ТС не владеет материей. Да и я сам в регулярке только базовые знания имею, не могу давать советы.


Название: Re: Удаление HTML-тэгов
Отправлено: phpCoder от Март 16, 2015, 08:37
Нет, регуляры знаю. Просто свой велосипед изобретать не хотел.


Название: Re: Удаление HTML-тэгов
Отправлено: Bepec от Март 16, 2015, 08:46
Готовых средств нет.
Можете написать :)


Название: Re: Удаление HTML-тэгов
Отправлено: kai666_73 от Март 16, 2015, 12:19
Код:
QTextEdit edit;
QString htmlText = ...;
QString plainText;
edit.setHtml(htmlText);
plainText = edit.toPlainText();


Название: Re: Удаление HTML-тэгов
Отправлено: sociopath от Март 17, 2015, 13:43
QTextEdit - это оверхэд. Он все равно внутри использует QTextDocument, его и надо использовать.

Код:
QTextDocument doc;
QString plainText;
doc.setHtml(htmlText);
plainText = doc.toPlainText();

Если не поможет, то тогда уже писать собственный велосипед.


Название: Re: Удаление HTML-тэгов
Отправлено: phpCoder от Март 21, 2015, 07:53
Проще регулярами.
Код
C++ (Qt)
<.+?>