本文整理汇总了C++中XPathExecutionContext::problem方法的典型用法代码示例。如果您正苦于以下问题:C++ XPathExecutionContext::problem方法的具体用法?C++ XPathExecutionContext::problem怎么用?C++ XPathExecutionContext::problem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XPathExecutionContext
的用法示例。
在下文中一共展示了XPathExecutionContext::problem方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: XalanDOMString
XALAN_CPP_NAMESPACE_USE
/**
* Execute an XPath function object. The function must return a valid
* XObject.
*
* @param executionContext executing context
* @param context current context node
* @param opPos current op position
* @param args vector of pointers to XObject arguments
* @return pointer to the result XObject
*/
XObjectPtr FunctionBase64::execute( XPathExecutionContext& executionContext, XalanNode* context, const XObjectArgVectorType& args, const LocatorType* locator ) const
{
XALAN_USING_XALAN( XalanDOMString );
if ( args.size() != 3 )
{
stringstream errorMessage;
errorMessage << "The Base64() function takes 3 arguments [ nodeset, trailer, envelope ], but received " << args.size();
#if (_XALAN_VERSION >= 11100)
executionContext.problem( XPathExecutionContext::eXPath, XPathExecutionContext::eError, XalanDOMString( errorMessage.str().c_str() ), locator, context);
#else
executionContext.error( XalanDOMString( errorMessage.str().c_str() ), context );
#endif
}
stringstream stringToEncode;
string envelopeName = localForm( ( const XMLCh* )( args[ 2 ]->str().data() ) );
stringToEncode << "<" << envelopeName << ">";
for( unsigned int i=0; i<args[ 0 ]->nodeset().getLength(); i++ )
{
stringToEncode << XPathHelper::SerializeToString( args[ 0 ]->nodeset().item( i ) );
}
stringToEncode << localForm( ( const XMLCh* )( args[ 1 ]->str().data() ) ) << "</" << envelopeName << ">";
string encodedString = Base64::encode( stringToEncode.str() );
return executionContext.getXObjectFactory().createString( unicodeForm( encodedString ) );
}
示例2: execute
XALAN_CPP_NAMESPACE_USE
/**
* Execute an XPath function object. The function must return a valid
* XObject.
*
* @param executionContext executing context
* @param context current context node
* @param opPos current op position
* @param args vector of pointers to XObject arguments
* @return pointer to the result XObject
*/
XObjectPtr FunctionHash::execute( XPathExecutionContext& executionContext, XalanNode* context, const XObjectArgVectorType& args, const LocatorType* locator ) const
{
if ( args.size() != 1 )
{
stringstream errorMessage;
errorMessage << "The Hash() function takes one argument! [ stringToCRC ], but received " << args.size();
#if (_XALAN_VERSION >= 11100)
executionContext.problem( XPathExecutionContext::eXPath, XPathExecutionContext::eError, XalanDOMString( errorMessage.str().c_str() ), locator, context);
#else
executionContext.error( XalanDOMString( errorMessage.str().c_str() ), context );
#endif
}
string stringToCalculateCRC = localForm( ( const XMLCh* )( args[0]->str().data() ) );
//DEBUG( "Expression to calculate crc for : [" << stringToCalculateCRC << "]" );
stringstream messageHash;
/*MD5 md5Value;
md5Value.update( ( unsigned char* )&stringToCalculateCRC , stringToCalculateCRC.length() );
md5Value.finalize ();
*/
//DEBUG( "MD5 = [" << md5Value.hex_digest() << "]" );
//return executionContext.getXObjectFactory().createString( unicodeForm( md5Value.hex_digest() ) );
return executionContext.getXObjectFactory().createString( unicodeForm( md5( stringToCalculateCRC ).c_str() ) );
}
示例3: XalanXPathException
void
Function::generalError(
XPathExecutionContext& executionContext,
const XalanNode* context,
const Locator* locator) const
{
const GetCachedString theGuard(executionContext);
XalanDOMString& theErrorString = theGuard.get();
executionContext.problem(
XPathExecutionContext::eXPath,
XPathExecutionContext::eError,
getError(theErrorString),
locator,
context);
throw XalanXPathException(
theErrorString,
theErrorString.getMemoryManager(),
locator);
}