Начиная с простого XML-файла:
<?xml version="1.0"?>
<playlist>
<name>1 - first playlist</name>
<song>Daft Punk\Discovery\Daft Punk-Discovery-01-One More Time.mp3</song>
</playlist>
Я нашел:
Я пытаюсь извлечь имя плейлиста, поэтому я попробовал:
QFile source(filePath);
source.open(QIODevice::ReadOnly | QIODevice::Text);
QXmlQuery query(QXmlQuery::XSLT20);
query.setFocus(&source);
query.setQuery("string(//name)", QUrl(filePath));
QString result = "";
query.evaluateTo(&result);
qDebug() << result;
source.close();
filePath — это QString, переданная в этот метод.
Независимо от того, что я делаю, я продолжаю получать «Ошибка синтаксического анализа: ожидается начальный тег» из загружаемого файла и безрезультатно. Когда я проверяю, что находится в файле, он выглядит правильно.
QXmlQuery query(QXmlQuery::XSLT20);
вместо простого значения по умолчанию? Я подозреваю, что, не зная API, когда вы запросите XSLT 2.0 позже, когда вы передаете выражение XPath/XQuery, процессор пытается проанализировать это выражение как документ XSLT/XML, которым он не является. - person Martin Honnen   schedule 18.01.2016