2010-01-21 2 views
0

Я получаю действительно fustrated с этим ...Нет результатов с QXmlQuery

С помощью этого простого 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 

Любой ключ ??

+0

Я начал новый проект с использованием QCreator 1.31 и с использованием того же кода теперь получаю из сообщений stdout сообщений, которые не найдены, когда .xml находится в корневом каталоге проекта. Жалуется dissapear и все работает при размещении .xml-файла в папке сборки. –

ответ

1

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

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

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

Смежные вопросы