OK, solved it! I really have to read the manual first...sorry for bothering!

> When i get an event that an element was found, i take the localname in my
> startElement method and try to put it in a char array, like (don`t laugh,
> i`m new to c++!):
> int f = XERCES_CPP_NAMESPACE::XMLString::stringLen(localname);
>       char *element = (char *)malloc ( f * sizeof(char));
>       for (int i = 0; i < f;i++)
>       {
>               
>               element[i] = (char) localname [i];
>       }
>         std::cout << "Found element..." << element << "\n";
>       free(element);
> When i run my application i get the name of my element, but there are
> padding characters behind the actually elementname. Is that due to a
> different encoding? (XMLCh*?) Is there a method i have to call, which
> creates a string from the localname?
> Thanks 
> 
> Andre
> 
> > 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]
> > 
> 
> -- 
> "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]

Reply via email to