"If knowledge can create problems, it is not through ignorance that we can solve them."
Isaac Asimov
"Life is pleasant. Death is peaceful. It's the transition that's troublesome."
Isaac Asimov
"Violence is the last refuge of the incompetent."
Isaac Asimov, Salvor Hardin in "Foundation"
"Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest."
Isaac Asimov
"Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something."
Robert Heinlein, Time Enough For Love
"Beauty is not diminished by being shared."
Robert Heinlein
Tuesday, May 17, 2005
Tuesday, January 18, 2005
Xerces-C++ - Parse a xml buffer from a memory buffer
Error_t Parser::ParseFromMemBuffer(const char *buffer) {
if (! buffer) {
return -1;
}
...
errorsOcurred = false;
MemBufInputSource* inputBuffer = new MemBufInputSource ((const XMLByte*)buffer,
strlen(buffer),
"gMemBufId",
false);
try {
parser->parse(*inputBuffer);
}
catch (const XMLException& e) {
char *errMsg = XMLString::transcode(e.getMessage());
cerr << "[ERROR] XMLException: An error occurred during parsing: " << errMsg << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (const DOMException& e) {
char *errMsg = XMLString::transcode(e.msg);
cerr << "[ERROR] DOMException: An error occurred during parsing: " << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (...) {
cerr << "[ERROR] UNKNOWN: An error occurred during parsing" << endl;
errorsOcurred = true;
}
if (errorsOcurred) {
return -1;
}
doc = parser->getDocument();
root = doc->getDocumentElement();
return 0;
}
if (! buffer) {
return -1;
}
...
errorsOcurred = false;
MemBufInputSource* inputBuffer = new MemBufInputSource ((const XMLByte*)buffer,
strlen(buffer),
"gMemBufId",
false);
try {
parser->parse(*inputBuffer);
}
catch (const XMLException& e) {
char *errMsg = XMLString::transcode(e.getMessage());
cerr << "[ERROR] XMLException: An error occurred during parsing: " << errMsg << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (const DOMException& e) {
char *errMsg = XMLString::transcode(e.msg);
cerr << "[ERROR] DOMException: An error occurred during parsing: " << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (...) {
cerr << "[ERROR] UNKNOWN: An error occurred during parsing" << endl;
errorsOcurred = true;
}
if (errorsOcurred) {
return -1;
}
doc = parser->getDocument();
root = doc->getDocumentElement();
return 0;
}
Xerces-C++ - Parse a xml buffer from a file
XercesDOMParser *parser;
...
ErrorHandler *errHandler;
...
DOMElement *GetDocRoot(void);
...
DOMDocument *doc;
...
Error_t Parser::ParseFromFile(const char *filename) {
bool errorsOcurred = false;
errHandler = (ErrorHandler *) new HandlerBase;
parser->setErrorHandler(errHandler);
errorsOcurred = false;
try {
parser->parse(filename);
}
catch (const XMLException& e) {
char *errMsg = XMLString::transcode(e.getMessage());
cerr << "[ERROR] XMLException: An error occurred during parsing: " << errMsg << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (const DOMException& e) {
char *errMsg = XMLString::transcode(e.msg);
cerr << "[ERROR] DOMException: An error occurred during parsing: " << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (...) {
cerr << "[ERROR] UNKNOWN: An error occurred during parsing" << endl;
errorsOcurred = true;
}
if (errorsOcurred) {
return ERROR_PARSER_PARSE;
}
doc = parser->getDocument();
root = doc->getDocumentElement();
return ERROR_NO_ERROR;
}
...
ErrorHandler *errHandler;
...
DOMElement *GetDocRoot(void);
...
DOMDocument *doc;
...
Error_t Parser::ParseFromFile(const char *filename) {
bool errorsOcurred = false;
errHandler = (ErrorHandler *) new HandlerBase;
parser->setErrorHandler(errHandler);
errorsOcurred = false;
try {
parser->parse(filename);
}
catch (const XMLException& e) {
char *errMsg = XMLString::transcode(e.getMessage());
cerr << "[ERROR] XMLException: An error occurred during parsing: " << errMsg << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (const DOMException& e) {
char *errMsg = XMLString::transcode(e.msg);
cerr << "[ERROR] DOMException: An error occurred during parsing: " << endl;
errorsOcurred = true;
XMLString::release(&errMsg);
}
catch (...) {
cerr << "[ERROR] UNKNOWN: An error occurred during parsing" << endl;
errorsOcurred = true;
}
if (errorsOcurred) {
return ERROR_PARSER_PARSE;
}
doc = parser->getDocument();
root = doc->getDocumentElement();
return ERROR_NO_ERROR;
}
Subscribe to:
Posts (Atom)