Title: append new xalanNode taken from other Xalan Document to my XalanNode

Hi
I want to take new XalanNode *from otherXalanDocument and append it to old XalanNode in myXalanDocument
the XalanNode I have is XercesElementBridge * and that the XalanDocument is XalanDocumentBridge *

when I wrote
void myDom::addNode(string thisDomXpath,myDom & otherDom ,string otherDomXpath){
   XalanNode * newNode=otherDom.getNode(_evaluatorI,otherDomXpath); // getNode use evaluator to retrieve XalanNode which is XercesElementBridge

   XalanNode * oldNode=getNode(_evaluatorII,thisDomXpath);
   oldNode->appendChild(_xalanRealDoc[0]->importNode(newNode,true)); // _xalanRealDoc[0] is XalanDocumet * returned by XercesParserLiaison->createDocument(DomDoc)

}
I got exception not supported // because XalanDocumentBridge::importNode is not supported   ...... so I wrote

void myDom::addNode(string thisDomXpath,myDom & otherDom ,string otherDomXpath){
   XalanNode * newNode=otherDom.getNode(_evaluatorI,otherDomXpath);
   XercesDocumentBridge * newXercesDoc= dynamic_cast <XercesDocumentBridge *> (otherDom.getRealXalanDoc());
   DOM_Node newDOMNode= newXercesDoc->mapNode(newNode);

   XalanNode * oldNode=getNode(_evaluatorII,thisDomXpath);
   XercesDocumentBridge * oldXercesDoc=dynamic_cast <XercesDocumentBridge *> (_xalanRealDoc[0]);
   DOM_Node oldDOMNode=oldXercesDoc->mapNode(oldNode);

   oldDOMNode.appendChild(_domDocument->importNode(newDOMNode,true));
    // to see my changes I need the next steps
   _parserLiaison->destroyDocument(_xalanRealDoc[0]);
   _xalanRealDoc[0]=_parserLiaison->createDocument(*_domDocument);
}
must it be like that ? Is there any other way to do it?
Regards
Ifat
 
p.s
class myDom{
public: ...
          const string getValue(string xpath);
          XalanNode* getNode(XPathEvaluator * evaluator,string xpath="/");
          void addNode(string thisDomXpath,myDom & otherDom ,string otherDomXpath);
          XalanDocument * getRealXalanDoc();
private:   static DOMParser * _domParser;
          static XercesDOMSupport * _domSupport;
          static XercesParserLiaison * _parserLiaison;
          static XPathEvaluator * _evaluatorI;
          static XPathEvaluator * _evaluatorII;
          DOM_Document * _domDocument;
          vector<XalanDocument *> _xalanRealDoc;
        ... };
<<...OLE_Obj...>>
[EMAIL PROTECTED]
Comverse Divisional Developer
03-6454768
053-762891


Reply via email to