QXmlQuery :: setQuery () не может запрашивать, когда я передаю исходный код его параметру - PullRequest
0 голосов
/ 07 апреля 2019

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;

Затем появляется сообщение об ошибке:

Ошибка XPST0003 в файле: /// html / body /, в строке 1, столбец2: синтаксическая ошибка, неожиданное неизвестное ключевое слово, ожидание QName или NCName ""

Это странно, хотя я указывал QXmlQuery :: setQuery () действительный источник HTML!

1 Ответ

0 голосов
/ 07 апреля 2019

Используйте query.setFocus(srcHTML); query.setQuery("/html/body");.Обратите внимание, что входная строка для setFocus должна быть правильно сформированным XML, которым HTML часто не является.

...