本文整理汇总了C++中XQuery_t::getExternalVariables方法的典型用法代码示例。如果您正苦于以下问题:C++ XQuery_t::getExternalVariables方法的具体用法?C++ XQuery_t::getExternalVariables怎么用?C++ XQuery_t::getExternalVariables使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XQuery_t
的用法示例。
在下文中一共展示了XQuery_t::getExternalVariables方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lIn
bool
cxx_api_changes_test4(Zorba* aZorba)
{
try
{
std::ifstream lIn("cxx_api_ch4.xq");
assert(lIn.good());
StaticContext_t lStaticContext = aZorba->createStaticContext();
std::vector<String> lModulePaths;
lModulePaths.push_back(zorba::CMAKE_BINARY_DIR+"/TEST_URI_PATH/");
lStaticContext->setModulePaths(lModulePaths);
XQuery_t lQuery = aZorba->compileQuery(lIn, lStaticContext);
std::vector<Item> lVars;
Iterator_t varsIte;
lQuery->getExternalVariables(varsIte);
varsIte->open();
Item temp;
while(varsIte->next(temp))
lVars.push_back(temp);
varsIte->close();
if (lVars.size() != 3)
return false;
std::ostringstream lOut;
std::vector<Item>::const_iterator lIte = lVars.begin();
std::vector<Item>::const_iterator lEnd = lVars.end();
for (; lIte != lEnd; ++lIte)
{
lOut << lIte->getStringValue() << " ";
}
std::string out = lOut.str();
if (out != "testGetExtVarA:ext a testGetExtVarB:ext " &&
out != "testGetExtVarB:ext a testGetExtVarA:ext " &&
out != "a testGetExtVarA:ext testGetExtVarB:ext " &&
out != "a testGetExtVarB:ext testGetExtVarA:ext " &&
out != "testGetExtVarA:ext testGetExtVarB:ext a " &&
out != "testGetExtVarB:ext testGetExtVarA:ext a ")
return false;
}
catch (XQueryException& qe)
{
std::cerr << qe << std::endl;
return false;
}
catch (ZorbaException& e)
{
std::cerr << e << std::endl;
return false;
}
return true;
}
示例2: while
bool
cxx_api_changes_test5(Zorba* aZorba)
{
try
{
std::string lIn = "declare variable $a external; 1+1";
XQuery_t lQuery = aZorba->compileQuery(lIn);
std::vector<Item> lVars;
Iterator_t varsIte;
lQuery->getExternalVariables(varsIte);
varsIte->open();
Item temp;
while(varsIte->next(temp))
lVars.push_back(temp);
varsIte->close();
std::vector<Item>::const_iterator lIte = lVars.begin();
std::vector<Item>::const_iterator lEnd = lVars.end();
Item item = aZorba->getItemFactory()->createInt(4);
bool isBound1;
bool isBound2;
for(; lIte != lEnd; ++lIte)
{
Item qname = *lIte;
isBound1 = lQuery->getDynamicContext()->isBoundExternalVariable(qname.getNamespace(), qname.getLocalName());
Item value = aZorba->getItemFactory()->createString("foo");
lQuery->getDynamicContext()->setVariable(qname.getStringValue(), value);
isBound2 = lQuery->getDynamicContext()->isBoundExternalVariable(qname.getNamespace(), qname.getLocalName());
}
if (!isBound1 && isBound2)
return true;
}
catch (XQueryException& qe)
{
std::cerr << qe << std::endl;
return false;
}
catch (ZorbaException& e)
{
std::cerr << e << std::endl;
return false;
}
return true;
}