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]