在QT中解析HTML字符串

发布于 2024-11-16 20:16:25 字数 446 浏览 0 评论 0原文

我想在 Qt 中解析 HTML 字符串,

基本上我有 QTextEdit 对象(允许富文本),并且当有人在 QTextEdit 中粘贴富文本(从 MSWORD 或类似内容复制)时,我想要样式信息。

我有自己的结构来存储样式信息,如下所示。谁能告诉我在从 QTextEdit 获取 html 后如何解析 HTML? 任何现有的方法?,

PS:我正在使用QT版本4.1.4(由于项目原因),所以我不能使用4.1.4之后添加的QT类。

提前致谢。

typedef struct styleset {
  QString font;
  QString size;
  bool bold;
  bool italics;
  bool underline;
  QString color;
}STYLESET;

I want to parse HTML String in Qt,

basically i have QTextEdit object (allowed rich text), and when some body paste Rich text (copied from MSWORD or similar) in QTextEdit, i want to have the style information.

I have my own structure to store the style imformation as below. can anyone tell me how can i parse HTML after i get the html from QTextEdit?
any existing method?,

P.S : i am using QT version 4.1.4 (due to project reason) so i can't use QT classes added after 4.1.4.

Thanks in advance.

typedef struct styleset {
  QString font;
  QString size;
  bool bold;
  bool italics;
  bool underline;
  QString color;
}STYLESET;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温暖的光 2024-11-23 20:16:25

我认为您可以创建一个 QDomDocument,然后使用 QDomDocument::setContent( const QString & text, ...) 设置其内容。

Qt 4.1 文档 说:

该函数读取XML文档
来自字符串文本。由于文本是
已经是 Unicode 字符串,没有编码
检测完成。

加载QDomDocument后,您可以使用节点、属性等来填充您的结构。

I think you can create a QDomDocument then set its content with QDomDocument::setContent( const QString & text, ...).

Qt 4.1 Doc says:

This function reads the XML document
from the string text. Since text is
already a Unicode string, no encoding
detection is done.

Once you QDomDocument is loaded, you can mess around with nodes, attributes etc to fill your struct.

梦断已成空 2024-11-23 20:16:25

使用QTextCursor 迭代与文本编辑器关联的QTextDocument,并使用QTextCursor::charFormat() 检索字符样式信息。

Use QTextCursor to iterate through the QTextDocument associated with texteditor and retrieve character style information with QTextCursor::charFormat().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文