Нет результатов с QXmlQuery - PullRequest
0 голосов
/ 21 января 2010

Я очень расстроен этим ...

С этим простым xml:

<?xml version='1.0'?>
<root>
   <data>hello</data>
</root>

И этот код

QXmlQuery xquery;
xquery.setQuery( "doc('config.xml')//data" );

if( xquery.isValid() )
{
    QXmlResultItems itemResult;
 xquery.evaluateTo( &itemResult );
 QXmlItem item( itemResult.next() );
 while( !item.isNull() )
 {
  QVariant value = item.toAtomicValue();
  qDebug() << "One XML result!!!";
  item = itemResult.next();
 }
}

Этот код просто не дает мне никаких результатов. Я проверил, что путь выполнения приложения такой же, как и в файле config.xml.

Официальная документация мне не очень помогает, и, похоже, в интернете нет дополнительной информации о том, как использовать этот класс.

У меня есть другая программа, которая успешно загружает данные из XML, и код в точности похож на опубликованный. Даже выдает ошибку, если xml-файл не найден (что с моим текущим приложением не происходит).

Конечно, я настраиваю файл .pro для использования xmlpatterns:

QT += xmlpatterns

Любая подсказка ??

1 Ответ

1 голос
/ 22 января 2010

Я помню, у меня тоже были проблемы с этим ... Во всяком случае, я обнаружил, что использовал следующие строки:

QFile SourceDocument;
SourceDocument.setFileName(rXmlFilePath);
...
Query.bindVariable("inputDocument", &SourceDocument);
QString FinalQuery("declare variable $inputDocument external;doc($inputDocument)//chapter");
Query.setQuery(FinalQuery);

Надеюсь, это вам немного поможет!

...