当我将源代码传递给它的参数时,QXmlQuery :: setQuery()无法查询

时间:2019-04-07 08:19:32

标签: c++ qt xquery

Qt的QXmlQuery :: setQuery具有多态性,就像:

void QXmlQuery::setQuery(const QString &sourceCode, const QUrl &documentURI = QUrl())

但是,当我将HTML源代码传递给参数sourceCode 并尝试求值时,我只会得到一个错误:

  

文件:///中的错误XPST0003,在第1行,第2列:语法错误,意外的未知关键字,需要QName或NCName

这里是一个例子:

QString srcHTML = "<html>......</html>";    // An HTML forked from any website

QXmlQuery query;
query.setQuery(srcHTML, QUrl("/html/body/"));

QString r;
query.evaluateTo(&r);

qDebug() << r;

然后显示一条错误消息:

  

文件:/// html / body /中的错误XPST0003,在第1行,第2列:语法错误,意外的未知关键字,预期为QName或NCName   “”

这很奇怪,即使我已经向QXmlQuery :: setQuery()提供了有效的HTML源代码!

1 个答案:

答案 0 :(得分:0)

使用query.setFocus(srcHTML); query.setQuery("/html/body");。请注意,setFocus的输入字符串必须是格式正确的XML,而HTML通常不是。

相关问题