PureBasic
PureBasic
Remove an XML Subtree
See more XML Examples
Demonstrates how to remove an XML subtree from an XML document.Chilkat PureBasic Downloads
IncludeFile "CkXml.pb"
Procedure ChilkatExample()
success.i = 0
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkXml::ckLoadXmlFile(xml,"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.
xml2.i = CkXml::ckGetSelf(xml)
; 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"
notUsed.s = CkXml::ckChilkatPath(xml2,"OSSZES|/C/ROW,*477956*|$")
; Examine the xml2, it should be just the subtree.
Debug CkXml::ckGetXml(xml2)
; Now detach xml2 from the it's XML document.
; xml2 will now be it's own XML document.
CkXml::ckRemoveFromTree(xml2)
; Examine our original XML document. The subtree is removed:
Debug CkXml::ckGetXml(xml)
CkXml::ckDispose(xml2)
CkXml::ckDispose(xml)
ProcedureReturn
EndProcedure