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
