473,390 Members | 1,723 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,390 software developers and data experts.

How to write XML declaration with DOMWriter class Xerces-c

Hello Everyone,

currently I am implementing a solution to write individually created
XML data to a file using c++ and Xerces-c 2.7.0 library. Therefore I
am making use of DOMWriter class which allows me to write the
according DOM tree to a given location using LocalFileFormatTarget().
Everything works fine except that I cant define and set a certain XML
declaration. The tutorial seems to provide an easy way to do this by
applying the setEncoding(), setVersion() or setStandalone() functions
to the according DOMDocument. But even after setting those parameters
as well as enabling the fgDOMXMLDeclaration() feature of the DOMWriter
nothing is written except one empty line at the beginning of the
document. What am I doing wrong???

The according code snippet is given below:

const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };
DOMImplementation* impl =
DOMImplementationRegistry::getDOMImplementation(gL S);
DOMWriter* theSerializer = ((DOMImplementationLS*)impl)-
>createDOMWriter();
if (theSerializer->canSetFeature(XMLUni::fgDOMXMLDeclaration,true) )
theSerializer->setFeature(XMLUni::fgDOMXMLDeclaration, true);

DOMDocument* doc;
doc = impl->createDocument(
0, // root element
namespaceURI.
XMLString::transcode("rootnode"),
// root element name
0); // document type
object(DTD).

doc->setEncoding(XMLString::transcode("UTF-8"));
doc->setVersion(XMLString::transcode("1.0"));

DOMNode* node = XMLwalker->getRoot(); //Set
Walker to Root node of the document
XMLFormatTarget *myFormTarget;
myFormTarget = new
LocalFileFormatTarget(written_XML_name.c_str()); //output to file
try{
theSerializer->writeNode(myFormTarget, *node);
}
catch.....

Any Help is appreciated as for my purposes the integration of the xml
declaration is compulsory!

Best regards,
Christian Eickhoff

Mar 5 '07 #1
3 9466
On 5 Mrz., 11:14, christian.eickh...@nt.uni-saarland.de wrote:
DOMNode* node = XMLwalker->getRoot(); //Set
Walker to Root node of the document
XMLFormatTarget *myFormTarget;
myFormTarget = new
LocalFileFormatTarget(written_XML_name.c_str()); //output to file
try{
theSerializer->writeNode(myFormTarget, *node);
Hi Christian!

You get the XML root here with XMLwalker->getRoot(); but not the root
of the DOM tree. DOMDocument is actually the root of your DOM. Try
replacing writeNode(myFormTarget, *node) with writeNode(myFormTarget,
*doc).

Regards spiff
http://www.spycomponents.com

Mar 5 '07 #2
On 5 Mrz., 14:15, "spiff" <s...@gmx.atwrote:
On 5 Mrz., 11:14, christian.eickh...@nt.uni-saarland.de wrote:
DOMNode* node = XMLwalker->getRoot(); //Set
Walker to Root node of the document
XMLFormatTarget *myFormTarget;
myFormTarget = new
LocalFileFormatTarget(written_XML_name.c_str()); //output to file
try{
theSerializer->writeNode(myFormTarget, *node);

Hi Christian!

You get the XML root here with XMLwalker->getRoot(); but not the root
of the DOM tree. DOMDocument is actually the root of your DOM. Try
replacing writeNode(myFormTarget, *node) with writeNode(myFormTarget,
*doc).

Regards spiffhttp://www.spycomponents.com
Hey spiff,

not the first time you helped me out!!! Thanks so much, good to have
versed experts like you! Now everything works fine =))..

With best regards,
Christian Eickhoff

Mar 5 '07 #3
On 5 Mrz., 16:02, christian.eickh...@nt.uni-saarland.de wrote:
not the first time you helped me out!!! Thanks so much, good to have
versed experts like you! Now everything works fine =))..

With best regards,
Christian Eickhoff
Christian,
fine that it is working now :-)

spiff

Mar 5 '07 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: Jochen Daum | last post by:
Hi, Can someone confirm this problem: This works: var $x = array( "x" => "x". "y", "y" => "a".
1
by: Venkat | last post by:
Hi All, I am getting unusual compile errors when i declare a vector as a private member of a class in .h file, but if i declare the same in .cpp file inside the definition of a function which...
4
by: Ovidesvideo | last post by:
Just a quick question. If I declare functions in the class declaration as such: class myclass { public: void function(int &x) { x++; } };
2
by: flopbucket | last post by:
Hi, How can I forward declare a class that is in a different namespace? As a simple example: classs Foo { std::string *string; };
1
by: Jeremy S. | last post by:
I'm implementing logging via the TraceSource class and related TraceSwitch and TraceListeners classes. The TextWriterTraceListener does much of what I need. But it does not roll the log over at...
9
by: Andrew | last post by:
Hi, I see some people prefer to use in headers (where possible) class declaration: // B.h class A; class B {
2
by: Shahrin | last post by:
#include<iostream> using namespace std; class teacher; class student { int dept; public:
3
Fr33dan
by: Fr33dan | last post by:
I'm a long time Java guy trying to move to C++ but I keep getting this error that I can't seem to figure out. It must be something simple I'm missing but I can't find it by looking at examples. I...
0
by: Alex T | last post by:
A few months ago I asked about this, and it seems this issue is still not resolved, so I'm asking for your help. I want to write a date class that skips weekends and these holidays a. New Year,...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.