Sample code for 30+ languages & platforms
PureBasic

Remove an XML Subtree

See more XML Examples

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

Chilkat PureBasic Downloads

PureBasic
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