At 15.44 13/07/2007 -0700, jerome.mariette wrote:

Ok so sounds like I absolutly have to delete my XMLFormatTarget if I want
the XML writen !!
Is that normal ??

Well, it's good housekeeping to delete the objects you created; apart for that, if you still want to leak that object, you can call flush() to have the cache written to the disk.

Alberto






jerome.mariette wrote:
>
> Hi everybody,
> I'm new in xerces and I get some trouble just to write a basic XML file
> !!! I try to create a DOM document from scratch and then to write it into
> a file on the disk, here is the code:
>
>       int errorCode = 0;
>       if(!appendEventsXML && impl != 0) {
>               try {
>
>                       //XMLFormatTarget *myFormTarget = new
> LocalFileFormatTarget(X("res.xml"));
>                       DOMWriter *theSerializer =
> ((DOMImplementationLS*)impl)->createDOMWriter();
>
>                       DOMDocument* doc = impl->createDocument(
> 0, // root element namespace URI.
>                                  X("company"),         // root element name
> 0); // document type object
> (DTD).
>
>
>                       DOMElement* rootElem = doc->getDocumentElement();
>
> DOMElement* prodElem = doc->createElement(X("product"));
>                       rootElem->appendChild(prodElem);
>
> DOMText* prodDataVal = doc->createTextNode(X("Xerces-C"));
>                       prodElem->appendChild(prodDataVal);
>
> DOMElement* catElem = doc->createElement(X("category"));
>                       rootElem->appendChild(catElem);
>
>                       catElem->setAttribute(X("idea"), X("great"));
>
> DOMText* catDataVal = doc->createTextNode(X("XML Parsing Tools"));
>                       catElem->appendChild(catDataVal);
>
> DOMElement* devByElem = doc->createElement(X("developedBy"));
>                       rootElem->appendChild(devByElem);
>
> DOMText* devByDataVal = doc->createTextNode(X("Apache Software
> Foundation"));
> devByElem->appendChild(devByDataVal);
>
>                       //
> // Now count the number of elements in the above DOM tree.
>                       //
>
>                       unsigned int elementCount =
> doc->getElementsByTagName(X("*"))->getLength();
> XERCES_STD_QUALIFIER cout << "The tree just created contains: " <<
> elementCount
>                       << " elements." << XERCES_STD_QUALIFIER endl;
>
>                       XMLFormatTarget *myFormatTarget = new
> LocalFileFormatTarget("myXMLFile.xml");
>                       theSerializer->writeNode(myFormatTarget, *prodElem);
>
>
>               }
>               catch (const OutOfMemoryException&)
>               {
> XERCES_STD_QUALIFIER cerr << "OutOfMemoryException" <<
> XERCES_STD_QUALIFIER endl;
>                       errorCode = 5;
>               }
>               catch (const DOMException& e)
>               {
> XERCES_STD_QUALIFIER cerr << "DOMException code is: " << e.code <<
> XERCES_STD_QUALIFIER endl;
>                       errorCode = 2;
>               }
>               catch (...)
>               {
> XERCES_STD_QUALIFIER cerr << "An error occurred creating the document"
> << XERCES_STD_QUALIFIER endl;
>                       errorCode = 3;
>               }
>       } else {
> XERCES_STD_QUALIFIER cerr << "Requested implementation is not supported"
> << XERCES_STD_QUALIFIER endl;
>               errorCode = 4;
>       }
>
> What am I doing wrong ?? the file is created but nothing is inside !!!
> thanks for your help
>

--
View this message in context: http://www.nabble.com/DOMWriter-tf4065159.html#a11588797
Sent from the Xerces - C - Dev mailing list archive at Nabble.com.


---------------------------------------------------------------------
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