Hello Jesse Pelton, thank you for the hint with XMLString::transcode() . I found the Error, a few lines before I destroyed the root element and a pointer to an destroyed pointer is always evil. ( I think that was an normal noob error).
I hope the next time I find the error earlier and i don't get on your nerves again. Thank you David "Jesse Pelton" <[EMAIL PROTECTED]> schrieb am 02.09.2008 14:28:46: > The documentation seems to imply that you'll always get a node list back > from getElementsByTagName(), but it might be worth checking whether your > nodes variable is null before dereferencing it. That's basic defensive > programming. > > Assuming nodes points to a valid node list, you don't need to check the > list's length. Just fetch nodes->item(0) and check to see whether the > result is null before dereferencing it. > > Note that your snippet has a memory leak. XMLString::transcode() > returns a pointer to allocated memory; you need to release that memory. > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Tuesday, September 02, 2008 7:15 AM > To: [email protected] > Subject: Problem with not existing Node > > Hello I have the following Problem: > > xerces shut down my programm when it wants to output an non existing > node, > here an exmple. > I want to read out the text of the elements. > > <xml> > <element_a >test</element_a> > <element_b />test</element_b> > </xml> > > The source code: > > DOMNodeList* nodes = > root->getElementsByTagName(XMLString:transcode("elementa")); > > cout << nodes->item(0)->getTextContent() << endl; > > This code makes no Problem while i ask for elemts which are in the > xmlfile > below, but if i ask for element_c which is not in the xml file the code > before exit my programm by reaching the code line > nodes->item(0)->getTextContent(). > > I have also tried to get out if the pointer is empty or there is no > nodes > with nodes->getlength() , but also here xerces is closing down my > programm > without an error message. > > If someone had an idea where the problem ist or how i can solve the > problem please write it to me > > Thanks David > > P.S I hope you understand my problem
