Получить простой текст из QString с тегами HTML

У меня есть QString с html-тегами. Почему я могу получить простой текст из этой строки?


person ekshibarov    schedule 14.05.2011    source источник
comment
возможный дубликат Есть ли простой способ отделить HTML от QString в Qt?   -  person Macke    schedule 05.06.2012


Ответы (3)


Вам нужно удалить теги HTML из строки. См. этот пост например.

person laurent    schedule 14.05.2011

str.remove(QRegExp("‹[^>]*>"));

person k06a    schedule 14.05.2011
comment
Это не способ Qt, но в некоторых ситуациях это хороший способ. Спасибо. - person ekshibarov; 16.05.2011
comment
Я уверен, что это самый короткий путь. - person k06a; 17.05.2011
comment
@ k06a Это будет всегда работать? А как насчет проблем в: stackoverflow.com/questions/590747/ - person eric; 21.10.2014
comment
Реальные веб-сайты @neuronet html содержат много ошибок и несоответствий. Так что синтаксический анализ html - не очень хорошая идея, ИМХО. - person k06a; 21.10.2014

Сейчас вопрос немного пыльный, но для всех, кто проверяет, возможно (стало ли?) Использовать QTextDocumentFragment для преобразования HTML в открытый текст способом Qt.

Этот подход может обеспечить согласованность в зависимости от вашей цели, а также надежность (конечно, в зависимости от времени Qt :) - но их пользовательская база значительна, и до сих пор он отлично работал для меня).

Я попробовал что-то вроде приведенного ниже в Python, я думаю, что механика должна быть примерно такой же и в C++.

from PySide2.QtGui import QTextDocumentFragment

plain = QTextDocumentFragment.fromHtml(
    "<body>someHtml<br/><b>it was so booold!</b></body>"
).toPlainText()

(Кроме того, документация Qt предполагает, что вы можете просто передать с QString по fromHtml там.)

person brezniczky    schedule 02.08.2020