Many thanks

here is my code:

in my main program I do:

XmlCAMethods* xmlCA = new XmlCAMethods;
string xmldoc ("");
 xmldoc += "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
 xmldoc += "<test>\n";
 xmldoc += "</test>\n";
cout<<"document to parse: \n"<<xmldoc;

xmlCA->readxmldoc(xmldoc.c_str());

xmldoc = "";
 xmldoc += "<test2>\n";
 xmldoc += "</test2>\n";

xmlCA->readxmldoc(xmldoc.c_str());

now in xmlCAMethods I do:


/**Constructor*/
XmlCAMethods::XmlCAMethods()
{
 try
    {
    cout<<"initialising the XML platform \n";
    XMLPlatformUtils::Initialize();
    }
    catch (const XMLException& toCatch)
    {
         cerr << "Error during initialization! :\n"
              << toCatch.getMessage() << endl;
       
    }
}

/**Destructor*/
XmlCAMethods::~XmlCAMethods()
{
XMLPlatformUtils::Terminate();
}


Information* XmlCAMethods::readxmldoc(const char* xmldoc)
{

 cout<<"reading xml doc..."<<endl;
 MemBufInputSource* pMemBufIS = NULL;
 Information* info;
 int errorCount = 0;
   

    //
    //  Create a SAX parser object and sets it to the parameters as
defined at the beginning
    //  of this file.
    //
    cout<<"create sax parser \n";
    SAXParser* parser = new SAXParser; //Error on this line 

    cout<<"set parsing parameters \n";
    parser->setValidationScheme(valScheme);
    parser->setDoNamespaces(doNamespaces);
    parser->setDoSchema(doSchema);
    parser->setValidationSchemaFullChecking(schemaFullChecking);


    //
    //  Create the handler object and install it as the document and
error
    //  handler for the parser-> Then parse the file and catch any
exceptions
    //  that propogate out
    //
    try
    {
        cout<<"create the handler object\n";
        SAXIPMMHandlers handler(encodingName, unRepFlags);
        cout<<"setting the handler of the parser\n";
        parser->setDocumentHandler(&handler);
        parser->setErrorHandler(&handler);
        cout<<"transform doc \n";
        pMemBufIS = transformInputXml(xmldoc);
        cout<<"parse doc \n";
        parser->parse(*pMemBufIS);
        cout<<"out of parser \n";
        errorCount = parser->getErrorCount();
        cout<<"error count \n";
        //get info here
        info = handler.getInformation();
        handler.~SAXIPMMHandlers();
        cout<<"destroying handler \n";

    }

    catch (const XMLException& toCatch)
    {
        cout << "catching error\n";
        cerr << "\nAn error occurred\n  Error: "
             << toCatch.getMessage()
             << "\n" << endl;
        XMLPlatformUtils::Terminate();
        //return -1;
        return NULL;
    }
   //cout<< "out of parser"<<endl;

    //
    //  Delete the parser itself.  Must be done prior to calling
Terminate, below.
    //
    delete parser;

    delete pMemBufIS;
    cout<<"parser deleted.."<<endl;


    // And call the termination method
    
    if (errorCount > 0)
        return NULL;
    else
        return info;


}




*-----Original Message-----
*From: Gareth Reakes [mailto:gareth@;decisionsoft.com]
*Sent: 18 October 2002 17:13
*To: [EMAIL PROTECTED]
*Subject: Re: Help ! can not parse twice
*
*
*Hi,
*       post the code you are using and I will take a look.
*
*Gareth
*
*
*On Fri, 18 Oct 2002, BARUCH Deborah FTRD/DMR/LON wrote:
*
*> Hi,
*> 
*> sorry to send this email once again but I've definitely have 
*a problem with the use of the xerces library. I can not manage 
*to parse successively two documents using a sax parser 
*(parsing once works fine) although I am initialising the 
*XmlPlatformsUtil only once in the process...Has anyone 
*encountered the same problem ? Any help would be greatly appreciated .
*> 
*> Thanks
*> 
*> Deborah
*> 
*> 
*> 
*
*-- 
*Gareth Reakes, Head of Product Development  
*DecisionSoft Ltd.            http://www.decisionsoft.com
*Office: +44 (0) 1865 203192
*
*
*
*---------------------------------------------------------------------
*To unsubscribe, e-mail: [EMAIL PROTECTED]
*For additional commands, e-mail: [EMAIL PROTECTED]
*
*

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to