QtXML не работает самостоятельно.Он работает на QIODevices, который является универсальным интерфейсом для всего, что делает ввод / вывод (файлы, сетевые сокеты, ...).Вы можете либо загрузить XML-файл во временный файл, а затем проанализировать его, либо, если вы анализируете пошагово, например, используя QXmlStreamReader, анализировать данные непосредственно по мере их поступления:
QNetworkAccessManager *manager = new QNetworkAccessManager( this );
QNetworkReply* reply = QNetworkAccessManager::get( manager->get( QNetworkRequest( QUrl("http://www.foo.com/example.xml") ) ) ;
QXmlStreamReader reader( reply );
//...parse
Обратите внимание, что QXmlStreamReader :: PrematureEndOfDocumentError s может возникнуть при разборе, если недостаточно загруженных данных.Вы можете либо подключиться к сигналу readyRead () ответа, чтобы продолжить, либо использовать reply-> waitForReadyRead (), если вы анализируете вне потока пользовательского интерфейса.