DataFlex
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
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