Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从Qt4小部件的文本属性中剥离HTML?_C++_Html_Parsing_Qt4 - Fatal编程技术网

C++ 如何从Qt4小部件的文本属性中剥离HTML?

C++ 如何从Qt4小部件的文本属性中剥离HTML?,c++,html,parsing,qt4,C++,Html,Parsing,Qt4,就编码工作而言,更改Qt4小部件的文本属性(例如QLabel.text)以便删除所有HTML标记最简单的方法是什么 HTML很简单,通常只有一到三个标记,比如or和它们的结束伙伴。听起来你真的只是在寻找一种方法,从一个字符串中剥离HTML标记,而这个字符串不是Qt小部件特有的(除非你想要一个可以利用Qt库其余部分的解决方案)。无论如何,在搜索“从字符串中剥离html”时,似乎并不缺少命中率。似乎有两种通用方法: 使用正则表达式() 使用html解析器 您可能会发现一个正则表达式对于您的目的来

就编码工作而言,更改Qt4小部件的文本属性(例如QLabel.text)以便删除所有HTML标记最简单的方法是什么


HTML很简单,通常只有一到三个标记,比如or和它们的结束伙伴。

听起来你真的只是在寻找一种方法,从一个字符串中剥离HTML标记,而这个字符串不是Qt小部件特有的(除非你想要一个可以利用Qt库其余部分的解决方案)。无论如何,在搜索“从字符串中剥离html”时,似乎并不缺少命中率。似乎有两种通用方法:

  • 使用正则表达式()
  • 使用html解析器
您可能会发现一个正则表达式对于您的目的来说已经足够好了,但是您需要一个合适的html解析器来正确地完成它

stackoverflow对regex选项进行了大量讨论(尽管问题是除去链接之外的所有标签)


由于您使用的是Qt,因此有一个使用该库中解析器示例的答案。

我过去曾使用过这个小部件,尽管这个小部件似乎有些过分了,富文本编辑块。这项工作的原因是构造函数假定字符串具有标记

QTextEdit htmlText(HtmlText);  // HtmlText is any QString with html tags.
QString plainText = htmlTextEdit.toPlainText();

为什么不在QTextEdit::toPlainText()源代码中偷看一下,看看那里做了什么?

如果不想使用小部件,可以使用


我正在使用Qt4,并且假设使用Qt4提供的任何东西都会更容易。一般来说,任何其他格式都可以,但我不想为将qString来回转换为任何其他格式而大惊小怪。这不能怪你。我尽可能使用qstring。QT使C++对我来说非常容易忍受,看起来很方便。谢谢我没注意到有toPlainText()这样的东西。酷!现在来看看还有哪些小部件。。。
QTextDocument doc;
doc->setHtml(htmlText);
doc->toPlainText();