Sample code for 30+ languages & platforms
DataFlex

Benefit of XML Methods Having Names Ending in "2"

See more XML Examples

The Chilkat XML methods having names ending with "2" update the internal reference rather than return a new XML object instance. See the example below..

Note: There are a few methods, such as LoadXml2, where the "2" simply indicates the method is the same but has an additional argument. (There are some programming environments where overloading methods is not allowed. Therefore, Chilkat will avoid providing methods having the same name but with different arguments.)

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    String x
    Handle hoXml
    Variant vXAbc
    Handle hoXAbc
    Variant vXXyz
    Handle hoXXyz
    String sTemp1

    Move False To iSuccess

    Move "<test><abc><xyz>123</xyz></abc></test>" To x

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

    Get ComLoadXml Of hoXml x To iSuccess

    // First demonstrate getting "123" in the simplest way:
    Get ComChilkatPath Of hoXml "abc|xyz|*" To sTemp1
    Showln sTemp1

    // Now demonstrate navigating to the "xyz" node using non-"2" methods.
    // The following few lines of code create two object instances, which will need
    // to be deleted or garbage collected.
    Get ComFindChild Of hoXml "abc" To vXAbc
    If (IsComObject(vXAbc)) Begin
        Get Create (RefClass(cComChilkatXml)) To hoXAbc
        Set pvComObject Of hoXAbc To vXAbc
    End
    Get ComFindChild Of hoXAbc "xyz" To vXXyz
    If (IsComObject(vXXyz)) Begin
        Get Create (RefClass(cComChilkatXml)) To hoXXyz
        Set pvComObject Of hoXXyz To vXXyz
    End
    Get ComContent Of hoXXyz To sTemp1
    Showln sTemp1
    Send Destroy of hoXXyz
    Send Destroy of hoXAbc

    // Now demonstrate navigating to the "xyz" node using the "2" methods.
    // No object instances are created.
    Get ComFindChild2 Of hoXml "abc" To iSuccess
    Get ComFindChild2 Of hoXml "xyz" To iSuccess
    Get ComContent Of hoXml To sTemp1
    Showln sTemp1
    // Restore xml back to the root of the document.
    Send ComGetRoot2 To hoXml


End_Procedure