本文整理汇总了C++中xml::Element::getStringAttrib方法的典型用法代码示例。如果您正苦于以下问题:C++ Element::getStringAttrib方法的具体用法?C++ Element::getStringAttrib怎么用?C++ Element::getStringAttrib使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml::Element
的用法示例。
在下文中一共展示了Element::getStringAttrib方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseLambdaExpr
/***************************************************************
* Function: CodeParser::parseLambdaExpr()
* Purpose : Parse the XML code of a lambda expression
* Initial : Maxime Chevalier-Boisvert on February 25, 2009
****************************************************************
Revisions and bug fixes:
*/
Expression* CodeParser::parseLambdaExpr(const XML::Element* pElement)
{
// Create a vector for the input parameters
LambdaExpr::ParamVector inParams;
// Declare a pointer for the body expression
Expression* pBodyExpr = NULL;
// For each child element
for (size_t i = 0; i < pElement->getNumChildren(); ++i)
{
// Get a pointer to this child element
XML::Element* pChildElem = pElement->getChildElement(i);
// If this is a symbol
if (pChildElem->getName() == "Name")
{
// Parse the symbol and add it to the input parameters
inParams.push_back(SymbolExpr::getSymbol(pChildElem->getStringAttrib("nameId")));
}
// Otherwise, it must be the body expression
else
{
// If the body expression was already parsed
if (pBodyExpr != NULL)
{
// Throw an exception
throw XML::ParseError("Duplicate body expression", pChildElem->getTextPos());
}
// Parse the body expression
pBodyExpr = parseExpression(pChildElem);
}
}
// If no body expression was found
if (pBodyExpr == NULL)
{
// Throw an exception
throw XML::ParseError("No body expression found", pElement->getTextPos());
}
// Create and return the new lambda expression
return new LambdaExpr(
inParams,
pBodyExpr
);
}