0
点赞
收藏
分享

微信扫一扫

XQilla2.3.2解析查询

void parseQuery(const char* queryStr,const char* xmlFileName)

{

XQilla xqilla;//构造函数中初始化Xerces-C,析构函数中释放

//建立查询器

XQQuery* query = xqilla.parse(X(queryStr));

//获取环境

DynamicContext* context = query->createDynamicContext();

//加载文件到队列

Sequence seq = context->resolveDocument(X(xmlFileName));




if(!seq.isEmpty() && seq.first()->isNode())

{

context->setContextItem(seq.first());

context->setContextPosition(1);

context->setContextSize(1);

}


//执行查询

Result result = query->execute(context);

//输出结果

Item::Ptr item;

while(item = result->next(context)) {

std::cout << UTF8(item->asString(context)) << std::endl;

}

}

int main(int argc, char *argv[])

{

parseQuery("foo/bar/@baz","foo.xml");

return 0;

}

举报

相关推荐

0 条评论