QXmlQuery没有结果

时间:2010-01-21 16:19:45

标签: qt xquery

我真的很沮丧......

使用这个简单的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();
 }
}

这段代码根本不会给我任何结果。 我已经检查过app的执行路径与config.xml的位置相同。

官方文档对我没什么帮助,似乎互联网上没有关于如何使用这个课程的详细信息。

我有另一个程序从xml成功加载数据,代码与发布的完全一样。如果找不到xml文件,甚至会抛出一个错误(当前应用程序没有发生的事情)。

当然我正在配置.pro文件以使用xmlpatterns:

QT += xmlpatterns

任何线索??

1 个答案:

答案 0 :(得分:1)

我记得我也遇到了一些麻烦......无论如何,我发现我使用了以下几行:

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

我希望它会对你有所帮助!