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]

Reply via email to