首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QXmlQuery无结果

QXmlQuery无结果
EN

Stack Overflow用户
提问于 2014-03-28 10:57:22
回答 1查看 628关注 0票数 1

在Windows平台上使用QT4.8.4,并尝试使用QXmlQuery而没有任何运气。显然,在没有找到解决方案的情况下,就研究了这个话题。

以下是xml文件

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <a>abc</a>
  <a>def</a>
  <a>123</a>
</root>

代码看起来是这样的;

代码语言:javascript
复制
QFile temp("C:/Temp/data.xml");
bool opened = temp.open(QIODevice::ReadOnly | QIODevice::Text);

QXmlQuery q;
q.bindVariable("file", &temp);
q.setQuery("declare variable $file external;doc($file)//root");
bool valid = q.isValid();

QStringList items;
q.evaluateTo(&items);
int len = items.size();

文件已成功打开,QXmlQuery有效,但QStringList包含0项。为什么查询不返回结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 11:58:12

将XQuery更改为

代码语言:javascript
复制
q.setQuery("declare variable $file external;doc($file)//root");

代码语言:javascript
复制
q.setQuery("declare variable $file external;doc($file)//root/string()"); 

解决了问题。

文档实际上声明:“查询必须计算到xs:string值的序列。如果查询不计算字符串序列,则通常可以通过在XQuery末尾添加对string()的调用来转换值。”

http://qt-project.org/doc/qt-4.8/qxmlquery.html#evaluateTo-3

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22710900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档