I tried writing \t as well as 	. \t gets written as literal tab whereas 	 gets written as 	 replacing the & value.
What I need finally is 	 written out to xml file. Alternatively, Is there any way to escape & in the value of 	 getting replaced to & - Ritesh -------------------------------------------------------------- John Lilley wrote: > > I think that was the first line in the example: >> pRow->setAttribute(L"description", L"\tThe value of PI"); > > -----Original Message----- > From: Alberto Massari [mailto:[email protected]] > Sent: Wednesday, April 07, 2010 1:10 AM > To: [email protected] > Subject: Re: Xerces CPP does not replace tab character in attribute value > with hexadecimal char reference > > If you invoke > > pRow1->setAttribute(L"description", L"	The vale of PI"); > > what you are writing is the literal "	", not a tab character. Have > you tried writing the same content as in the Java version, > > pRow1->setAttribute(L"description", L"test tab \t, and \x09 as	 > value" ); > > Alberto > > > On 4/6/2010 11:20 PM, ritesh.dhope wrote: >> I have a sample xerces writer code to create an attribute with tab >> character >> in value. When I write the xml file out, the tab character is preserved >> and >> written as literal tab. I want to convert this tab character to its >> hexadecimal char reference (	) so that this tab character can be >> parsed >> back. I tried the same code using Xerces-J and it is replacing the tab >> character with hexadecimal char reference. >> >> Here is the code snippets. >> ------------------- >> C++ >> ------------------- >> XMLPlatformUtils::Initialize(); >> >> DOMImplementation * pDOMImplementation = NULL; >> >> pDOMImplementation = >> DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("core")); >> >> DOMDocument * pDOMDocument = NULL; >> >> >> pDOMDocument = pDOMImplementation->createDocument(0, L"Hello_World", 0); >> >> >> >> DOMElement * pRootElement = NULL; >> pRootElement = pDOMDocument->getDocumentElement(); >> >> >> >> DOMElement * pRow = NULL; >> >> >> pRow = pDOMDocument->createElement(L"row"); >> pRow->setAttribute(L"description", L"\tThe value of PI"); >> pRootElement->appendChild(pRow); >> >> DOMElement * pRow1 = NULL; >> pRow1 = pDOMDocument->createElement(L"row"); >> pRow1->setAttribute(L"description", L"	The vale of PI"); >> pRootElement->appendChild(pRow1); >> >> DOMElement * pRow2 = NULL; >> >> >> pRow2 = pDOMDocument->createElement(L"row"); >> pRow2->setAttribute(L"description", L"\nThe value of PI"); >> pRootElement->appendChild(pRow2); >> >> DOMWriter *pwriter = pDOMImplementation->createDOMWriter(); >> XMLFormatTarget *pTarget = new >> LocalFileFormatTarget("f:\\june1\\june.xml"); >> >> >> pwriter->writeNode(pTarget, *pDOMDocument); >> ------------------------------------------------------------------------- >> >> ------------------ >> Java >> ------------------ >> Document zTest = >> DocumentBuilderFactoryImpl.newInstance().newDocumentBuilder().newDocument(); >> Element base = zTest.createElement( "Base" ); >> base.setAttribute( "test", "test tab \t, and \u0009 >> as	 >> value" ); >> zTest.appendChild( base ); >> >> Serializer z = new XMLSerializer(); >> >> z.setOutputByteStream( System.out ); >> z.asDOMSerializer().serialize( zTest ); >> ---------------------------------------------------------------------- >> > > > -- View this message in context: http://old.nabble.com/Xerces-CPP-does-not-replace-tab-character-in-attribute-value-with-hexadecimal-char-reference-tp28157670p28165406.html Sent from the Xerces - C - Users mailing list archive at Nabble.com.
