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]