Hi Enzo,
At 18.05 16/09/2005 +0200, AESYS S.p.A. [Enzo Arlati] wrote:
But when can I include special character inside a node.
I want to use the format &#xXX . but the '&' where processed and translate
in & so the character ¥ whill be converted to &#xA5 instead of
the desired current character entitity.
This is a different problem; if you want to
insert special characters using DOM you should
just place them in the string, and let DOMWriter
escape them, if the output encoding is unable to represent them.
For instance,
> string stmp;
> stmp = string( "this is a test: <> & \xA5 " );
> pTestRef = pDoc->createElement( X("TEST_REFERENCE_1") );
> dtxt = pDoc->createTextNode( X( stmp.c_str()));
Please be aware that every time you mix
std::string and XMLCh and do conversions between
them by means of X() or XMLString::transcode you
are doing a very tricky operation that you must
fully understand in order to succeed.
In this case, you *must* be sure that 0xA5 is a
valid character in the encoding of the machine
where your software is running, or the conversion
from local code page to Unicode will either fail
or return something you didn't anticipate.
Usually, I suggest to work directly with Unicode
strings, at least you know that the numbers you
put in the strings have only one symbol associated.
Alberto
thank for you help.
-----Messaggio originale-----
Da: Alberto Massari [mailto:[EMAIL PROTECTED]
Inviato: giovedì 15 settembre 2005 12.10
A: c-dev@xerces.apache.org
Oggetto: Re: R: using non standard character with zerces
Hi Enzo,
At 11.39 15/09/2005 +0200, AESYS S.p.A. [Enzo Arlati] wrote:
>I have a source like this, which I read and parse :
>
><?xml version="1.0" standalone="no" ?>
><Messaggio>
>...........
><Test1> start < > & ( ¥ ) end </Test1>
></Messaggio>
>
>[...]
>while if I use the function dom_wr->writeToString ( see belowe ) I get an
>empty string
>
> chXml = dom_wr->writeToString( *pDoc );
> delete dom_wr;
> delete errHandlerDomWriter;
>
> sXml = XMLString::transcode( chXml );
> sres = string( sXml );
> XMLString::release( &sXml );
>
>sres is EMPTY
The result of writeToString is a Unicode string;
XMLString::transcode tries to convert that
Unicode string into the local code page of your
Linux box. I guess your current local code page
is unable to represent the Unicode character 0xA5
(the yen symbol). If you really want to display
that Unicode string on your terminal, you should
change your code page to be latin-1 or its equivalents (e.g. ISO-8859-1)
Alberto
>Do you known any idea about that ?
>I'm using xerces 2.4 on redhat 7.3
>
>
>
>
>
>DOCUMENT:
>
>-----Messaggio originale-----
>Da: AESYS S.p.A. [Enzo Arlati] [mailto:[EMAIL PROTECTED]
>Inviato: mercoledì 14 settembre 2005 14.24
>A: c-dev@xerces.apache.org
>Oggetto: using non standard character with zerces
>
>
>
>I' m using a code like the one show belowe to build a DOM document.
>
> DOMElement * pTestRef;
> string stmp;
> stmp = string( "this is a test: <> & ¥ " );
> pTestRef = pDoc->createElement( X("TEST_REFERENCE_1") );
> dtxt = pDoc->createTextNode( X( stmp.c_str()));
> pRoot->appendChild( pTestRef );
> pTestRef->appendChild( dtxt );
>
>The output I get is show belowe, where entities >,> and & a re corretly
>translated.
>
><?xml version="1.0" encoding="UTF-16" standalone="no" ?>
><Messaggio>
>......
><TEST_REFERENCE_1>this is a test: <> & &#165;
></TEST_REFERENCE_1>
></Messaggio>
>
>What I can't do is to pass other entities in hex or decimal notation like
>¥ for the euro character, because the first & which is part of the
whole
>enitiy is translated separately.
>How is possible to tell to DOMWriter to leave as is ( without translate teh
>& char ) entities composed by more characters ( like ¥ , ¥ or
>< )
>
>Regards,
>Enzo Arlati
>[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]
---------------------------------------------------------------------
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]