Hi, Erik: Thank you for your answer.
However, I still have some trouble to make it work. My major trouble is how can I get the correct XercesDocumentWrapper constructed ? The XercesDocumentWrapper takes a DomDocument as the first parameter, I get the DomDocument in the following way (I do not know if this is correct). XalanDOMString * theFileName = new XalanDOMString (yourFilePath.c_str()); LocalFileInputSource * myTmpInputSource = new LocalFileInputSource ((*theFileName).c_str()); XercesParserLiaison::DOMParserType theParser; theParser.parse( *myTmpInputSource); DOMDocument * XercesDocument = theParser.getDocument(); //Here is the way to get the DOMDocument, is this O.K ? XercesDocumentWrapper theWrapper (XercesDocument); //After I got XalanNode * theNode using some other way (using theEavluate.selectSingleNode and slectNodeList). I called the following function // DOMNode * xercesNode = (DOMNode* ) theWrapper.mapNode (theNode); But as soon as the above sentence called, it goes to the catch exception block. I am not sure what's going wrong. By the way, do you have any code sample to show the answer you shown me in your last E-mail ? It will be very helpful I can see the code sample. Thanks a lot for your help. Sincerely Richard Liu Software Engineer at Boeing -----Original Message----- From: Erik Rydgren [mailto:[EMAIL PROTECTED] Sent: Monday, March 01, 2004 10:12 AM To: [email protected] Subject: RE: Do we have any way to update or change the value of of a DOMTREE in the memory using xpath and Xalan libiary ? Xalan can do it. You simply select the nodes you are interested in with XPath and loop over the result while applying your changes. (Warning: The following code is written on top of my head and may contain errors or cause confusion) For instance assume that you have this document in memory: <doc> <wanteditem attr="value1"/> <notwanteditem attr="somevalue"/> <wanteditem attr="value2"/> </doc> Then assume that you want to change all /doc/wanteditem/@attr value to foobar. - First select your nodes with Xalan XPath using a XercesDocumentWrapper and XPath evaluator. (xpath: /doc/wanteditem/@attr) You will get a XObject that is a nodeset of 2 attribute nodes. - Extract the nodeset object from the XObject. (Method on the XObject) - Loop through the nodeset getting XalanNode pointers. - The Xalan nodes are read only so you need to map the XalanNodes to XercesNodes. This is done with the XercesDocumentWrapper::map method. - You will then have the node that corresponds to the attr. Do a setNodeValue to "foobar". - Repeat for each node in the nodeset and you are done. Remember to rebuild the XercesDocumentWrapper between changes in the document. / Erik > -----Original Message----- > From: Liu, Richard [mailto:[EMAIL PROTECTED] > Sent: den 1 mars 2004 15:54 > To: [email protected] > Subject: Do we have any way to update or change the value of of a DOMTREE > in the memory using xpath and Xalan libiary ? > > Hi, > > I have a general question in terms of xpath ability. > > I know we can extract (get) the specific value of a node using xPath > query. > > However, our application needs to have the ability to change or update > the value of certain nodes, I have no idea if we can do it? > If using xPath and Xalan library can not do it, do we have any other > tools that may support this ability ? > > > Thanks > > Richard Liu > Software Engineer at Boeing > >
