Sample code for 30+ languages & platforms
Xbase++

Remove an XML Subtree

See more XML Examples

Demonstrates how to remove an XML subtree from an XML document.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oXml
LOCAL oXml2
LOCAL cNotUsed

nSuccess := 0

oXml := CreateObject("Chilkat.Xml")

nSuccess := oXml:LoadXmlFile("qa_data/xml/osszes.xml")

//  The XML file we're loading contains this:

//  <?xml version="1.0" encoding="iso-8859-2" ?>
//  <EXAMPLE>
//      <OSSZES>
//          <ROW TYPE="INS">477953
//              <NUMBER>05107003972</NUMBER>
//          </ROW>
//          <ROW TYPE="INS">477954
//              <NUMBER>05107001342</NUMBER>
//          </ROW>
//          <ROW TYPE="INS">477955
//              <NUMBER>05107001342</NUMBER>
//          </ROW>
//          <ROW TYPE="INS">477956
//              <NUMBER>05107000017</NUMBER>
//          </ROW>**
//          <ROW TYPE="INS">477957
//              <NUMBER>05107002182</NUMBER>
//          </ROW>
//      </OSSZES>
//  </EXAMPLE>
//  

//  We wish to remove this subtree:

//  <ROW TYPE="INS">477956
//      <NUMBER>05107000017</NUMBER>
//  </ROW>

//  Get another reference to the XML document.
oXml2 := oXml:GetSelf()

//  Navigate to the node that is the root of the subtree to be deleted.
//  In this case, we wish to find the node having tag "ROW" with content "477956"
cNotUsed := oXml2:ChilkatPath("OSSZES|/C/ROW,*477956*|$")

//  Examine the xml2, it should be just the subtree.
? oXml2:GetXml()

//  Now detach xml2 from the it's XML document.
//  xml2 will now be it's own XML document.
oXml2:RemoveFromTree()

//  Examine our original XML document.  The subtree is removed:
? oXml:GetXml()

oXml2:destroy()

oXml:destroy()