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]
