本文整理汇总了C++中XMLParser::IsFailed方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLParser::IsFailed方法的具体用法?C++ XMLParser::IsFailed怎么用?C++ XMLParser::IsFailed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLParser
的用法示例。
在下文中一共展示了XMLParser::IsFailed方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: file_name_str
OP_STATUS
WebFeedStorage::LocalLoad(const uni_char *file_name)
{
OP_STATUS oom = OpStatus::OK;
OpFile feed_file;
OpStringC file_name_str(file_name);
oom = feed_file.Construct(file_name_str.CStr(), OPFILE_WEBFEEDS_FOLDER);
if (OpStatus::IsError(oom))
return oom;
UnicodeFileInputStream in_stream;
RETURN_IF_ERROR(in_stream.Construct(&feed_file, URL_XML_CONTENT, TRUE));
XMLParser *parser;
URL dummy;
RETURN_IF_ERROR(XMLParser::Make(parser, NULL, g_main_message_handler, this, dummy));
OpStackAutoPtr<XMLParser> protected_parser(parser);
// Set up XML configuration for parsing web feed storage:
XMLParser::Configuration configuration;
configuration.load_external_entities = XMLParser::LOADEXTERNALENTITIES_NO;
configuration.max_tokens_per_call = 0; // unlimited
#if defined(_DEBUG) && defined(XML_ERRORS)
configuration.generate_error_report = TRUE;
#endif
parser->SetConfiguration(configuration);
int buf_len = 2048;
BOOL more = in_stream.has_more_data();
while (OpStatus::IsSuccess(oom) && more && !parser->IsFailed())
{
uni_char *buf = in_stream.get_block(buf_len);
more = in_stream.has_more_data();
OP_ASSERT(buf_len % sizeof(uni_char) == 0);
buf_len /= sizeof(uni_char);
OP_ASSERT(buf);
if (!buf)
return OpStatus::ERR;
oom = parser->Parse(buf, buf_len, more);
OP_ASSERT(!parser->IsFailed());
#if defined(_DEBUG) && defined XML_ERRORS
if (parser->IsFailed())
{
XMLRange range;
const char *error, *url, *fragment;
range = parser->GetErrorPosition();
parser->GetErrorDescription(error, url, fragment);
}
#endif // defined(_DEBUG) && defined(XML_ERRORS)
}
return OpStatus::OK;
}