It was actually the namespace missing in the signature of startElement().I thought if Attributes.hpp is included and the namespace was declared in my application it should work! OK, now i know better! Thank you very much indeed!!!!! Andre
> Actually, Attributes.hpp should be included via XMLReaderFactory.hpp. > Alby's on to the problem, though: the Attributes type is not known. I suspect > this is a namespace issue. Try XERCES_CPP_NAMESPACE::Attributes (or > uncommenting "using namespace XERCES_CPP_NAMESPACE;", since your code is > building on Xerces). > > -----Original Message----- > From: Andre Stock [mailto:[EMAIL PROTECTED] > Sent: Tuesday, June 15, 2004 10:18 AM > To: [EMAIL PROTECTED] > Subject: Re: Newbie Problems with Simple SAXParser > > Hi, > I just took the startElement method from SAX2Count and copied it to my > .hpp > (the definition) and my .cpp file (declaration). I did the same for the > characters method from SAX2Count. When i compile my project, the compiler > says that there is a ',' missing before '&'(in my .hpp and my .cpp file!). > How can that be? I copied both methods and chracters() is working fine, > while startElement(...) isn`t working! > > void CHandler::startElement(const XMLCh* const uri > , const XMLCh* const localname > , const XMLCh* const qname > , const Attributes& attrs) > { > std:cout << "Found element..."; > } > > > Has anyone a sample code fragment for startElement? > Thanks > Andre > > > Hi Andre, > > you are missing a > > > > #include <xercesc/sax2/Attributes.hpp> > > > > in the CHandler.hpp file. > > > > Alberto > > > > At 13.43 15/06/2004 +0200, Andre Stock wrote: > > >Ok, you`re right i`m new to c++. But anyway i want to try to write it > on > > my > > >own (or better with your help! ;-)) > > > > > >That`s the CXercesTest.cpp file: > > > > > >#include "stdafx.h" > > >#include "CXercesTest.h" > > >#include "CHandler.hpp" > > >#include <xercesc/util/PlatformUtils.hpp> > > >#include <xercesc/sax2/SAX2XMLReader.hpp> > > >#include <xercesc/sax2/XMLReaderFactory.hpp> > > >#include <xercesc/sax2/DefaultHandler.hpp> > > > > > > > > >using namespace XERCES_CPP_NAMESPACE; > > >//using namespace std; > > > > > >//##ModelId=40C56B8B02DE > > >void CXercesTest::createXMLStream() > > >{ > > > > > >} > > > > > >//##ModelId=40C56BC8003E > > >int CXercesTest::parseDocument() > > >{ > > > try { > > > XMLPlatformUtils::Initialize(); > > > } > > > catch (const XMLException& toCatch) { > > > char* message = > XMLString::transcode(toCatch.getMessage()); > > > std::cout << "Error during initialization! > :\n"; > > > std::cout << "Exception message is: \n" > > > << message << "\n"; > > > XMLString::release(&message); > > > return 1; > > > } > > > > > > SAX2XMLReader* parser = XMLReaderFactory::createXMLReader(); > > > > > > > > > CHandler* defaultHandler = new CHandler(); > > > //DefaultHandler* defaultHandler = new DefaultHandler(); > > > parser->setContentHandler(defaultHandler); > > > parser->setErrorHandler(defaultHandler); > > > try { > > > parser->parse("c:\\xmlFile.xml"); > > > } > > > catch (const XMLException& toCatch) { > > > char* message = > XMLString::transcode(toCatch.getMessage()); > > > std::cout << "Exception message is: \n" > > > << message << "\n"; > > > XMLString::release(&message); > > > return -1; > > > } > > > catch (const SAXParseException& toCatch) { > > > char* message = > XMLString::transcode(toCatch.getMessage()); > > > std::cout << "Exception message is: \n" > > > << message << "\n"; > > > XMLString::release(&message); > > > return -1; > > > } > > > catch (...) { > > > std::cout << "Unexpected Exception \n" ; > > > return -1; > > > } > > > > > >} > > > > > >//##ModelId=40C56F5C0196 > > >CXercesTest::CXercesTest() > > >{ > > > this->createXMLStream(); > > > this->parseDocument(); > > >} > > > > > >I also created a file which inherits from DefaultHandler.hpp which is > > called > > >CHandler.hpp: > > > > > >#include <xercesc/sax/SAXParseException.hpp> > > >#include <xercesc/sax2/DefaultHandler.hpp> > > >#include <iostream> > > > > > > > > >class CHandler : public XERCES_CPP_NAMESPACE::DefaultHandler > > >{ > > >public: > > > CHandler(); > > > ~CHandler(); > > > void startDocument(); > > > void startElement ( > > > const XMLCh* const uri, > > > const XMLCh* const localname, > > > const XMLCh* const qname, > > > const Attributes& attrs > > > ); > > > > > > > > >}; > > > > > >and CHandler.cpp: > > >#include <xercesc/util/XercesDefs.hpp> > > >#include <xercesc/util/XMLString.hpp> > > >#include "CHandler.hpp" > > > > > >//using namespace XERCES_CPP_NAMESPACE; > > > > > > > > >void CHandler::startDocument() > > >{ > > > std::cout<< "Parsing in progress...!"; > > >} > > > > > >void CHandler::startElement( > > > const XMLCh* const uri, > > > const XMLCh* const localname, > > > const XMLCh* const qname, > > > const Attributes& attrs > > > ) > > >{ > > > std::cout << "Found element..."; > > >} > > > > > >CHandler::CHandler() > > >{ > > >} > > >CHandler::~CHandler() > > >{ > > >} > > > > > >and there is the problem, the compiler says "missing ',' before '&' in > > the > > >CHandler.hpp and CHandler.cpp file. > > >Just for the sake of completeness there is another class calling the > > >CXercesTest constructor. > > >I`m sorry bothering you, but i have to get it working as fast as > > possible... > > >when it`s to hard for me i`ll try the version with taking SAXPrint and > > >modify it! > > >Thanks in advance! > > >Andre > > > > > >-- > > >"Sie haben neue Mails!" - Die GMX Toolbar informiert Sie beim Surfen! > > >Jetzt aktivieren unter http://www.gmx.net/info > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > -- > +++ Jetzt WLAN-Router f�r alle DSL-Einsteiger und Wechsler +++ > GMX DSL-Powertarife zudem 3 Monate gratis* http://www.gmx.net/dsl > > > --------------------------------------------------------------------- > 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] > -- +++ Jetzt WLAN-Router f�r alle DSL-Einsteiger und Wechsler +++ GMX DSL-Powertarife zudem 3 Monate gratis* http://www.gmx.net/dsl --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
