Hi Dave, Thanks for your reply.
Please see the function below, which transforms a xerces document successfully. Please provide your comments whether its okay or not. I am having two problems though: 1. It crashes when I uncomment XMLPlatformUtils::Terminate(); at the end of the function. 2. I see there is one extra blank line added to every line in the output file (trans.xml), which I need to avoid. Any suggestions on these ? Regards, Indrajit void transformDOM() { XALAN_USING_XALAN(XalanDOMString) XALAN_USING_XALAN(XercesDOMSupport) XALAN_USING_XALAN(XercesParserLiaison) XALAN_USING_XALAN(ElementPrefixResolverProxy) XALAN_USING_XALAN(XercesDocumentWrapper) XALAN_USING_XERCES(XMLPlatformUtils) XALAN_USING_XALAN(XalanTransformer) XMLPlatformUtils::Initialize(); DOMImplementation* impl = DOMImplementationRegistry::getDOMImplementation(X("Core")); xercesc::DOMBuilder* builder = impl->createDOMBuilder(xercesc::DOMImplementationLS::MODE_SYNCHRONOUS, 0); //builder->setFeature(xercesc::XMLUni::fgDOMValidation, true); builder->setFeature(xercesc::XMLUni::fgDOMNamespaces, true); builder->setFeature(xercesc::XMLUni::fgXercesSchema , true); xercesc::DOMDocument* pDoc = builder->parseURI(X("c:\\A.xml")); XercesDOMSupport theDOMSupport; XercesParserLiaison theParserLiaison(theDOMSupport); theParserLiaison.setUseValidation(true); theParserLiaison.setIncludeIgnorableWhitespace(false); xalanc::XercesDOMWrapperParsedSource theWrapper(pDoc, theParserLiaison, theDOMSupport); // Initialize Xalan. XalanTransformer::initialize(); { // Create a XalanTransformer. XalanTransformer theXalanTransformer; // Do the transform. const string xslFile("c:\\my.xsl"); ifstream xsl(xslFile.c_str()); const string outfile("c:\\trans.xml"); ofstream tgt(outfile.c_str()); const xalanc::XalanParsedSource* theParsedSource = 0; int ret = theXalanTransformer.transform(theWrapper, xsl, tgt); if(ret != 0) { CString err = theXalanTransformer.getLastError(); AfxMessageBox(err); } else AfxMessageBox("Transformed successfully !!"); } // Terminate Xalan... XalanTransformer::terminate(); // XMLPlatformUtils::Terminate(); } On Thu, 22 Feb 2007 David Bertoni wrote : >Indrajit Bhattacharya wrote: >>Hi, >> >>I have yet another query and need help from you. This is regarding XSLT. >> >>I have application data as Xercesc DOM nodes. Can I do XSLT transform on the >>root node ? In the sample XalanTransform, it takes one input XML file, one >>XSL file and produces an output file. >>In my case, I will have xerces DOM root node pointer and XSL file. Can I run >>transform function of the XalanTransformer object with my data ? > >Wrapping the Xerces-C DOM for an XSLT transformation is exactly the same as >wrapping it for use with the XPathEvaluator. > >Dave