You need to include the header file that defines Attributes, directly or
indirectly.

Tony Dodd
Oxford University Research Technology Group 

>-----Original Message-----
>From: Andre Stock [mailto:[EMAIL PROTECTED] 
>Sent: 15 June 2004 15:18
>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]

Reply via email to