我们滥用QWebFrame作为html解析器
QString html = "<img src="input_213123dfh" />";
QWebFrame* frame = htmlProcessor.mainFrame();
frame->setHtml(html);
QWebElementCollection inputs = frame->documentElement().findAll("img[src*=input_]");
foreach (QWebElement input, inputs) {
input.setOuterXml(QString("<input type="text" uuid="%1" />").arg(input.attribute("src").section("_",1,1)));
}
html = frame->toHtml();
输出<html><head></head><body><input type="text" uuid="213123dfh"></body></html>
我们的问题是输出中的输入标签不是自闭的。是否有可能获得html与自关闭标签?
这是一个死胡同。它不能移植到QWebEngine
,正如你所看到的,它不能很好地工作。
相反,您应该从javascript迭代DOM,并且可以在那里发出xhtml。