Hi,

My program generates a runtime error...I went through the debugger & it
seems to break at the parser->parse(XMLfile)

The error is:

Debug Error!....this application has requested the runtime to terminate in
an unusual way

The code with problems:

#include "prjLoad.h"

//DEBUG
#include <iostream>
using namespace std;

//Default Constructor
prjLoad::prjLoad(prjHandler *ptr_tmp): prjHandle(ptr_tmp){
        loadXML_prj("xml_file.xml");
}

//Destructor
prjLoad::~prjLoad(void){
        //Terminate The Dom Session
        XMLPlatformUtils::Terminate();
}

bool prjLoad::loadXML_prj(char *prj_filename){
        //Start XML Xerces Framework
        try {
            XMLPlatformUtils::Initialize();
        }
        catch (const XMLException& toCatch) {
            char* message = XMLString::transcode(toCatch.getMessage());
            cout << "Error during initialization! :\n"
                 << message << "\n";
            XMLString::release(&message);
                        return false;
        }

                //Create New Parser (SAX)
        SAXParser* parser = new SAXParser();

                //File Input Validation
        parser->setDoValidation(true);    
        parser->setDoNamespaces(true);   

                //Create our SAX handler object and install it on the parser 
(Doc & Error
Handler)
                //Using Project as Handler
                parser->setDocumentHandler(prjHandle);
                parser->setErrorHandler(prjHandle);

                //Load File through Xerces
                XERCES_STD_QUALIFIER ifstream xmlFileHandle;
        xmlFileHandle.open(prj_filename);

                //Load Each Line From File To Array xmlFile
                bool flag = true;
                while (flag == true)
    {
        char token[1000];
        //Set array to zeros
        memset(token,0,sizeof(token));

                //Sequential Search
                if(!(xmlFileHandle.eof())){
                        xmlFileHandle.getline(token, sizeof(token));

                        //Check If Line Contains Anything
                        if(!(token))
                                continue;
                        else {
                                //Load into New Derived Variable for 
overloading & Safety
                                const char *XMLfile = token;

                                //Debug
                                cout << "Parsing: " << XMLfile << endl;

                                //ERROR WIPE -> NEEDS IMPLIMENTING

                                try {
                                        parser->parse(XMLfile);
                                }
                                catch(XMLException &e){
                                        cout << "ERROR OCCURED" << endl;
                                }

                        }
                        
                
                }
                //ELSE STATEMENT FOR EOF-> Set Flag to false therefore exiting 
while loop
                else
                        flag = false;


        }
                return true;
}

Thanks For looking at this its been bugging me for hours

Cheers
-Alex
-- 
View this message in context: 
http://www.nabble.com/Error-In-Code-%28Sax-Parsing%29-tf2860959.html#a7993779
Sent from the Xerces - C - Users mailing list archive at Nabble.com.

Reply via email to