QDomDocument 可以 类似于js那样 直接获取 标签下的html内容么
比如:
<html><body id='body'><div><font>Hello world!</font></div><p>This is a paragraph.</p></body></html>
获取 div 标签得到 Hello world! 类似于innerHTML。
QDomDocument 可以 类似于js那样 直接获取 标签下的html内容么
比如:
<html><body id='body'><div><font>Hello world!</font></div><p>This is a paragraph.</p></body></html>
获取 div 标签得到 Hello world! 类似于innerHTML。
参考GPT和自己的思路:在 QDomDocument 中,不像 JavaScript 中的 DOM API 一样有 innerHTML 和 outerHTML 等属性,可以直接获取标签下的 HTML 内容。
但是,可以通过 QDomElement 的 attributes() 方法获取标签的属性列表,通过 elementsByTagName() 方法获取标签下的子节点,然后遍历这些子节点,获取到文本节点的内容,从而实现类似 innerHTML 的功能。
对于你的具体问题,可以通过以下代码实现获取 div 标签下的文本内容:
QDomDocument doc;
doc.setContent("<html><body id='body'><div><font>Hello world!</font></div><p>This is a paragraph.</p></body></html>");
QDomElement body = doc.documentElement().firstChildElement("body");
QDomElement div = body.firstChildElement("div");
QDomNodeList nodeList = div.elementsByTagName("*");
for (int i = 0; i < nodeList.size(); i++) {
QDomNode node = nodeList.at(i);
if (node.isText()) {
QString text = node.toText().data();
// 输出文本节点的内容
qDebug() << text;
}
}
运行结果为:
"Hello world!"