Sample code for 30+ languages & platforms
DataFlex

Demonstrates the ChilkatPath XML Method

Demonstrates how to use the ChilkatPath method. This example uses the XML sample file pigs.xml. The pigs.xml file contains this content:

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoXml
    String sResult
    String sTemp1
    Boolean bTemp1

    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/pigs.xml" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoXml To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Get the content of the "species" node for the 1st animal:

    Get ComChilkatPath Of hoXml "animal|species|*" To sResult
    // Output should be "pot belly pig"
    Showln sResult

    // Get the content of the "type" node for the 2nd animal:
    // Indexing begins at 0.  Therefore, the 2nd direct child having
    // the tag "animal" is at index 1
    Get ComChilkatPath Of hoXml "animal[1]|type|*" To sResult
    // Output should be "House Pig"
    Showln sResult

    // Find the pig having the name "Nigel" and display the
    // birth date.  To do this, we&apos;ll navigate to the node having
    // tag="name" with the exact content "Nigel", then navigate up, 
    // and finally navigate back down to the "birth" node:
    Get ComChilkatPath Of hoXml "/C/name,Nigel|..|birth|*" To sResult
    // Output should be "June, 1991"
    Showln sResult

    // Navigate to the 1st animal&apos;s picture and print the filename,
    // description, and caption.
    // The "$" updates the caller&apos;s internal pointer to reference
    // the node that is the result of evaluating the path.
    // An empty string is returned for success, and a NULL/nil/0
    // pointer (reference) is returned on failure.  
    Get ComChilkatPath Of hoXml "animal|picture|$" To sResult
    Get ComLastMethodSuccess Of hoXml To bTemp1
    If (bTemp1 <> True) Begin
        Showln "Failed to navigate to animal|picture."
        Procedure_Return
    End

    // Display the contents of the file/description/caption child nodes
    Showln "Picture Info:"
    Get ComGetChildContent Of hoXml "file" To sTemp1
    Showln sTemp1
    Get ComGetChildContent Of hoXml "description" To sTemp1
    Showln sTemp1
    Get ComGetChildContent Of hoXml "caption" To sTemp1
    Showln sTemp1

    // Return back to the root of the XML document:
    Send ComGetRoot2 To hoXml

    // Display the value of the "spay-neuter" attribute of the 1st animal:
    Showln "----"
    Get ComChilkatPath Of hoXml "animal|gender|(spay-neuter)" To sResult
    Showln sResult


End_Procedure