Use this code:

DOMLSOutput* theOutput = ((DOMImplementationLS*)impl)->createLSOutput();
XMLString::transcode("ISO-8859-1", tempStr, 99);
theOutput->setEncoding(tempStr);
MemBufFormatTarget memTarget;
theOutput->setByteStream(&memTarget);

theSerializer->write(node, theOutput);

result=memTarget.getRawBuffer();
// remember that the result will be deallocated as soon as you destroy memTarget

Alberto

radada wrote:
Hi there again,

I'm still stuck with my problem... This time, I used the Alberto code, which
would be :
_________________________________________________________________________________
XMLCh tempStr[100]; XMLString::transcode("LS", tempStr, 99); DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(tempStr); DOMLSSerializer* theSerializer = ((DOMImplementationLS*)impl)->createLSSerializer(); DOMLSOutput* theOutput = ((DOMImplementationLS*)impl)->createLSOutput(); XMLString::transcode(path, tempStr, 99); theOutput->setSystemId(tempStr); XMLString::transcode("ISO-8859-1", tempStr, 99); theOutput->setEncoding(tempStr);

try { theSerializer->write(node, theOutput); } _________________________________________________________________________________


I perfectly works to write into a file...
But I would like the get the XML content as an char* stream.
The thing is (I surely missed something...), the DOMLSOutput class only
implements a getByteStream method, which returns a XMLFormatTarget object. But the getRawBuffer(), which returns a XMLByte* stream is only implemented in the MemBufFormatTarget... I can't use the writeToString method since the stream returned has an
"UTF16" encoding (which is logical because the writeToString method does not
need the DOMLSOutput object in which I used the setEncoding method, if you
still follow me ^^)...

So, in a few words (haha nice one after all the crap above : p) : how can I
return a char* stream that would have an encoding set to "ISO-8859-1" (using
the DOMLSOutput I guess)...

Thanks a lot... again : )


radada wrote:
OKi doki, I'll try that tomorrow at work.
Thanks a lot for your precious help Alberto : )


Alberto Massari wrote:
writeToURI is simply a shorthand for creating a DOMLSOutput, calling setSystemId on it, and invoking write(). Just add the setSystemId call to your code, and change writeToURI into write().

Alberto


radada wrote:
Lol I just saw that I wans't using the DOMLSOutput because I used the
writeToUri method...
Back to square one : how can I do it? Using write method and then get
the
string back with another method?
Thx...


radada wrote:
Hi and thx

here is the code for the serialisation :

   XMLCh tempStr[100];
   XMLString::transcode("LS", tempStr, 99);
   DOMImplementation *impl =
DOMImplementationRegistry::getDOMImplementation(tempStr);
   DOMLSSerializer* theSerializer =
((DOMImplementationLS*)impl)->createLSSerializer();

   DOMLSOutput* theOutput =
((DOMImplementationLS*)impl)->createLSOutput();
   theOutput->setEncoding((XMLCh *)"ISO-8859-1");

   try
   {
      theSerializer->writeToURI(node, XMLString::transcode(path));
   }


I'll try with the XMLString::transcode to check...



Alberto Massari wrote:
First of all, you cannot simply cast a char* to be a XMLCh*, but you need to convert it using XMLString::transcode (and releasing the string after that). Then, how are you serializing the document?

Alberto

radada wrote:
Hi Alberto and thx again for answering : )

I tried to do it using this code :
DOMLSOutput* theOutput =
((DOMImplementationLS*)impl)->createLSOutput();
theOutput->setEncoding((XMLCh *)"ISO-8859-1");

but the XML files declaration stil was <?xml version="1.0"
encoding="UTF-8"
standalone="no" ?>. How's that?
Thx again for your help.




Alberto Massari wrote:
In the DOML3 specifications, the encoding is set in the DOMLSOutput object that is passed to DOMLSSerializer::write.

Alberto

radada wrote:
Hi there again  : ))

I've been searching on how to set the XML encoding of the XML
declaration
output file in xerces 3.0 (C++)
In the previous versions, I had to call the setEncoding method of
the
DOMDocument, but I can't find it now.
As a result, the XML files have the "UTF-8" encoding in the
declaration
while I need them to be in "ISO-8859-1".

Thx a lot guys.
---------------------------------------------------------------------
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]



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