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]