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  &lt; &gt;  &amp; &#x28;  &#xA5; &#x29;  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: <> & &#165; " );
>        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: &lt;&gt; &amp; &amp;#165;
></TEST_REFERENCE_1>
></Messaggio>
>
>What I can't do is to pass other entities in hex or decimal notation like
>&#165 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 &#xA5;  , &#165; or
>&lt; )
>
>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]

Reply via email to