Sample code for 30+ languages & platforms
DataFlex

Remove an XML Subtree

See more XML Examples

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoXml
    Variant vXml2
    Handle hoXml2
    String sNotUsed
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatXml)) To hoXml
    If (Not(IsComObjectCreated(hoXml))) Begin
        Send CreateComObject of hoXml
    End

    Get ComLoadXmlFile Of hoXml "qa_data/xml/osszes.xml" To iSuccess

    // 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.
    Get ComGetSelf Of hoXml To vXml2
    If (IsComObject(vXml2)) Begin
        Get Create (RefClass(cComChilkatXml)) To hoXml2
        Set pvComObject Of hoXml2 To vXml2
    End

    // 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"
    Get ComChilkatPath Of hoXml2 "OSSZES|/C/ROW,*477956*|$" To sNotUsed

    // Examine the xml2, it should be just the subtree.
    Get ComGetXml Of hoXml2 To sTemp1
    Showln sTemp1

    // Now detach xml2 from the it's XML document.
    // xml2 will now be it's own XML document.
    Send ComRemoveFromTree To hoXml2

    // Examine our original XML document.  The subtree is removed:
    Get ComGetXml Of hoXml To sTemp1
    Showln sTemp1

    Send Destroy of hoXml2


End_Procedure