这是一个场景,我使用QtNetwork模块从互联网上检索一个html页面,
以前,我只是创建一个新的QWebPage对象,并使用setHtml()函数加载它,然后解析它(查找特定的标记和属性),但这看起来很差劲。
现在我想我可以通过QtScript来做这件事,我会给出一个QByteArray作为输入,然后解析页面,获得一些元素和属性,但使用的是javascript语法。
也就是说,在过去我做QWebElement::findFirst()加上一个在它们上面的foreach循环,现在我想做类似getElementByID的东西,不是用C++代码,而是纯js。
这有可能吗?如果是这样的话,谁能给出一个代码的例子?我正在运行Qt 4.8.4
或者任何可以避免QWebElement风格解析的东西。
发布于 2013-03-12 04:52:21
QTScript是基于ECMAScript的,带有一些扩展,如信号/插槽。它不实现DOM。
QTScript实际上已经实现了ECMA-262 3rd Edition。因此,不可能在QTScript中使用getElementByID,因为它没有在ECMAScript标准中定义,因为它实际上是在DOM中定义的。
但是,您可以为DOM操作创建自己的包装器函数,也可以使用QTScript中的QWebElement.findFirst()方法。
https://stackoverflow.com/questions/14547774
复制相似问题