Thanks everyone for helping me this is a very good and helpful list. I was not serializing the node using DOMWriter after I removed children.
Thanks again Enda Mannion -----Original Message----- From: Alberto Massari [mailto:[EMAIL PROTECTED] Sent: 08 June 2006 11:56 To: c-dev@xerces.apache.org Subject: RE: removeChild not working Hi Enda, At 11:38 AM 6/8/2006 +0100, Mannion, Enda wrote: >Hi, > >I would like to remove all of person1 and its child tags below. > >- <<Contacts> >- < <Person1> > < <ContactType>Partner</ContactType> > <FirstName>y</FirstName> > <LastName>y</LastName> > <Salutation>y</Salutation> > <Title>y</Title> > <EmailAddress>y</EmailAddress> > <TelephoneNumber>y</TelephoneNumber> > <PreferredLanguage>y</PreferredLanguage> > <Availability>y</Availability> > <Property name="value">y</Property> > </Person1> > <Person2> > <ContactType>Partner1</ContactType> > <FirstName>x</FirstName> > <LastName>x</LastName> > <Salutation>x</Salutation> > <Title>x</Title> > <EmailAddress>x</EmailAddress> > <TelephoneNumber>x</TelephoneNumber> > <PreferredLanguage>x</PreferredLanguage> > <Availability>x</Availability> > <Property name="value">x</Property> > </Person2> > </Contacts> > > >But this code does not do this. > >xercesc::DOMNode* node = findNode(szContactType, >"ContactType"); // this is the node I want to delete > > >DOMNode* current = node->getFirstChild(); >while (current != NULL) >{ > node->removeChild(current); > current = node->getFirstChild(); >} > >But after the code is run the node and children are still in the XML file. Here are some questions: 1) what is returned by the findNode method? The pointer to the DOMElement 'ContactType' or to its parent, 'Person1'? If the node returned is 'ContactType' you are removing the text node 'Partner', otherwise you are removing all the children of 'Person1', but in any case you are left with an empty element (e.g. in the first case <Person1><ContactType></ContactType><FirstName>y</FirstName>.... , in the second case <Person1></Person1>) 2) when you say "is still in the XML file", do you mean after you serialize back to disk using DOMWriter? Or are you expecting that by manipulating the DOM structure the XML file is automatically changed (it's not)? Alberto > > >I would really appreciate some help, or even tell me if I am doing >things correctly. > >Thanks, >Enda > > >From: Mannion, Enda >Sent: 08 June 2006 10:00 >To: c-dev@xerces.apache.org >Subject: RE: removeChild not working > >Here is some more code using removeChild() that does not work for me. > > >xercesc::DOMNode* node = findNode(szContactType, "ContactType"); >char* nodeName = XMLString::transcode(node->getNodeName()); > > >DOMNode* current = node->getFirstChild(); >while (current != NULL) >{ > char* nodeNa = XMLString::transcode(current->getNodeName()); > node->removeChild(current); > current = node->getFirstChild(); >} > >I am currently using xerces 2_4, I have to remain using this version >for a while, but I presume removeChild() worked in 2_4. > > >Any Ideas? > >Enda > > >From: Mannion, Enda >Sent: 07 June 2006 20:40 >To: c-dev@xerces.apache.org >Subject: removeChild not working > >I want to remove the node below called outerNode but it is not >working, any ideas. > > >xercesc::DOMNode* docNode = xmlDoc->getDocumentElement(); > >DOMNodeList* list = docNode->getChildNodes(); >DOMNode* outerNode = NULL; > >outerNode = list->item(i); > >docNode->removeChild(outerNode); > > >Any ideas why? >Enda > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]