Hi Jesse; Thanks for your response
it's exactely wath i want to do but I have some questions :blush: wath the differennce between XercesDOMParser and DOMParse ??? Jesse Pelton wrote: > > I think maybe I'm starting to understand what you're after. You're > starting with a string of characters representing a serialization of an > XML document, and you want to include it in another document. If that's > the case, you have a couple of choices. > > One is to treat this as a simple text transformation. Just write out the > text of the document prolog and root element start tag, then write your > input string, then write the element end tag. > > The other is to handle the input as XML. To do this, you'll need to parse > your input string into a DOMDocument. (See the DOMParse sample > application for one way to do this.) You'll still need to create a new > document. You'll use DOMDocument::importNode() to import the root node of > your input document to the new document, and then use > DOMNode::appendChild() to append the imported node to the root element of > the new document. Then you can serialize the new document. > > > -----Original Message----- > From: K.WIKI [mailto:kgou...@gmail.com] > Sent: Thu 6/25/2009 11:32 AM > To: c-users@xerces.apache.org > Subject: RE: Xerces and special caractere < > > > > Thanks > > This The Code > > void CreaXML( CString strValue,CString strFile) > { > XMLCh m_xmlChTempStr[400]; > XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* m_xmlDoc; > DOMImplementation *m_xmlImpl; > XMLCh tempStr[400]; > > XMLPlatformUtils::Initialize(); > > XMLString::transcode("LS", m_xmlChTempStr, (400)); > m_xmlImpl = > DOMImplementationRegistry::getDOMImplementation(m_xmlChTempStr); > > CString root = "Contents"; > XMLString::transcode(root, m_xmlChTempStr, (400)); > m_xmlDoc = m_xmlImpl->createDocument(0, m_xmlChTempStr, 0); > DOMElement* Contents = m_xmlDoc->getDocumentElement(); > > XMLString::transcode("version", m_xmlChTempStr, (400 )); > XMLString::transcode(VERSIO_XML_REC_CMD, tempStr, (400)); > DOMAttr* attr = m_xmlDoc->createAttribute(m_xmlChTempStr); > attr->setValue(tempStr); > Contents->setAttributeNode(attr); > > XMLString::transcode( m_strValue, m_xmlChTempStr, (400)); > > try > { > DOMWriter *theSerializer = > ((DOMImplementationLS*)m_xmlImpl)->createDOMWriter(); > > //Opcional. activem (Set) el nostre propi errorHandler > DOMErrorHandler *errorHandler = new DOMCountErrorHandler(); > theSerializer->setErrorHandler(errorHandler); > > //Opcional. set feature to serializer > if > (theSerializer->canSetFeature(XMLUni::fgDOMWRTSplitCdataSections, > false)) > theSerializer->setFeature(XMLUni::fgDOMWRTSplitCdataSections, > false); > > if > (theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent, > false)) > > theSerializer->setFeature(XMLUni::fgDOMWRTDiscardDefaultContent, > false); > > if > (theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, > true)) > theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, > true); > > if (theSerializer->canSetFeature(XMLUni::fgDOMWRTBOM, true)) > theSerializer->setFeature(XMLUni::fgDOMWRTBOM, true); > > // creem un "Format target" per rebre el xml creat pel > serialtzador > // StdOutFormatTarget dibuixa el xml resultant q rep del > serialitzador > XMLFormatTarget *FormTarget = new > LocalFileFormatTarget(m_strFile); > > // serialitzem amb DOMWriter::writeNode() > > theSerializer->writeNode(FormTarget, *m_xmlDoc); > > // std::ios_base::out est automatiquement ajouté par le > // constructeur de std::ofstream > > theSerializer->release(); > delete errorHandler; > delete FormTarget; > > } > catch (const OutOfMemoryException& /*e*/) > { > > } > catch (const XMLException& /*e*/) > { > > } > > nErrorSuma = nError1 + nError2; > return nErrorSuma; > > m_xmlDoc->release(); > > } > > with > > //Value Of strValue = > "<Personne><FirstName>toto</FirstName><LastName>toto</LastName></Personne><Personne><FirstName>tata</FirstName><LastName>tata</LastName></Personne>" > > > I hops it's more clear now > > :) > > > > Jesse Pelton wrote: >> >> Just attach the code to a message. I'd recommend making the simplest >> possible test case out of it first. This has a couple of advantages: >> first, it's possible that you will find the problem yourself in the >> course >> of simplifying it, and second, if you do need to ask for help, the >> simpler >> the code is, the more likely it is that someone will be willing and able >> to help. >> >> > > -- > View this message in context: > http://www.nabble.com/Xerces-and-special-caractere-%3C-%3E-tp24201194p24205593.html > Sent from the Xerces - C - Users mailing list archive at Nabble.com. > > > > -- View this message in context: http://www.nabble.com/Xerces-and-special-caractere-%3C-%3E-tp24201194p24221349.html Sent from the Xerces - C - Users mailing list archive at Nabble.com.