Segfault in Xercesparser beim laden einer Zeichenkette
-
Wollte erstmal alle Begrüßen, denn das ist meine erster Thread in diesem Forum.

Zu meinem Problem:
Ich versuche eine Zeichenkette:
z.b.:char* p = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><FUNCTION NAME=\"GET_MEASURESTATUS\" ID=\"1149758883\" KENNUNG=\"dd1\" PWD=\"dd1\"/>";über die auch in diesem Forum oft besprochene Methode:
XercesDOMParser* parser = new XercesDOMParser(); static const char* MemBufId = "MemoryBufInputSource"; std::auto_ptr<MemBufInputSource> memBufIs(new MemBufInputSource(( const XMLByte* )p, strlen( p ), MemBufId, false)); parser->parse(*memBufIs);in einen DOMTree zu laden.
Das ganze kompiliert auch vollständig, nur leider bekomme ich immer einen
Segmentationfault wenn ich die Zeichenkette von meinem parser parsen lassen
will.hier nochmal der komplette code:
#include <xercesc/framework/MemBufInputSource.hpp> #include <xercesc/framework/Wrapper4InputSource.hpp> #include <xercesc/util/PlatformUtils.hpp> //#include <xercesc/parsers/AbstractDOMParser.hpp> #include <xercesc/parsers/XercesDOMParser.hpp> #include <xercesc/dom/DOMImplementation.hpp> #include <xercesc/dom/DOMImplementationLS.hpp> #include <xercesc/dom/DOMImplementationRegistry.hpp> #include <xercesc/dom/DOMBuilder.hpp> #include <xercesc/dom/DOMException.hpp> #include <xercesc/dom/DOMDocument.hpp> #include <xercesc/dom/DOMNodeList.hpp> #include <xercesc/dom/DOMError.hpp> #include <xercesc/dom/DOMLocator.hpp> #include <xercesc/dom/DOMNamedNodeMap.hpp> #include <xercesc/dom/DOMAttr.hpp> //... hier kommen jetzt noch ne menge Klassen usw. ... void Viewer::verarbeiteDatei(){ try{ XMLPlatformUtils::Initialize(); } catch( XMLException& e ){ std::cout << "Error while initializing xercesplatform" << std::endl; } DOMDocument* xmlDoc = 0; try{ char* p = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><FUNCTION NAME=\"GET_MEASURESTATUS\" ID=\"1149758883\" KENNUNG=\"dd1\" PWD=\"dd1\"/>"; XercesDOMParser* parser = new XercesDOMParser(); static const char* MemBufId = "MemoryBufInputSource"; std::auto_ptr<MemBufInputSource> memBufIs(new MemBufInputSource(( const XMLByte* )p, strlen( p ), MemBufId, false)); parser->parse(*memBufIs); // an dieser Stelle entsteht der Segfault... } catch(const XMLException&){ XERCES_STD_QUALIFIER cerr << "\nError during parsing memory config\n" << "Exception message is: \n"<< XERCES_STD_QUALIFIER endl; } catch (...) { XERCES_STD_QUALIFIER cerr << "\nUnexpected exception during parsing memory\n"; } //... Sachen die ich mit dem DOMTree machen möchte ... try{ XMLPlatformUtils::Terminate(); }catch( XMLException& e ){ std::cout << "Error while terminating xercesplatform" << std::endl; }Danke schonmal für jede Hilfe, ich sitz jetzt schon eine ganze Weile vor diesem
Problem und komm nicht wirklich weiter. Bin also für den kleinsten Hinweis sehr dankbar.
gambi
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.