0

这是场景,我使用 QtNetwork 模块从互联网检索 html 页面,

在过去,我只是创建一个新的 QWebPage 对象,然后使用该setHtml()函数加载它并解析它(查找特定的标签和属性),但这看起来很蹩脚。

现在我想我可以通过 QtScript 来做到这一点,我会给出一个 QByteArray 作为输入,然后解析页面,获取一些元素和属性,但是使用 javascript 语法。

即在过去我会QWebElement::findFirst()在它们上加上一个 foreach 循环,现在我想做getElementByID类似的东西,不是用 C++ 代码,而是用纯 js。

那有可能吗?如果是这样,任何人都可以举一个代码示例吗?我正在运行 Qt 4.8.4

或者任何可以避免 QWebElement 样式解析的东西。

4

1 回答 1

0

QTScript 是基于ECMAScript的,带有一些扩展,如信号/插槽。它不实现DOM

QTScript 实际上已经实现了ECMA-262 3rd Edition. 所以不可能getElementByID在 QTScript 中使用,因为它没有在 ECMAScript 标准中定义,因为它实际上是在 DOM 中定义的。

但是,您可以为 DOM 操作创建自己的包装函数,也可以使用QWebElement.findFirst()QTScript 中的方法。

于 2013-03-11T20:52:20.810 回答