Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) XML Document ReferencesThis example demonstrates the fact that the entire XML document remains in memory if at least one node is referenced. (It does not need to be the root node.)
Use ChilkatAx-win32.pkg Procedure Test Handle hoXml Boolean iSuccess Variant vXB Handle hoXB String sTemp1 Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Get ComLoadXml Of hoXml "<a><b>BBB</b><c>CCC</c></a>" To iSuccess Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 // We have the following XML stored in memory: // <?xml version="1.0" encoding="utf-8"?> // <a> // <b>BBB</b> // <c>CCC</c> // </a> // Get a reference to the 1st child. Get ComGetChild Of hoXml 0 To vXB If (IsComObject(vXB)) Begin Get Create (RefClass(cComChilkatXml)) To hoXB Set pvComObject Of hoXB To vXB End // Re-load "xml" with an entirely new document: Get ComLoadXml Of hoXml "<z><x>XXX</x></z>" To iSuccess // What happens to xB? // The answer is nothing. xB still points ot the "b" node in the original document, and the entire // original document remains in memory. We now have two XML documents in memory. Get ComGetXml Of hoXB To sTemp1 Showln sTemp1 // output is: // <b>BBB</b> // Make xB reference the root node of its document: Send ComGetRoot2 To hoXB Get ComGetXml Of hoXB To sTemp1 Showln sTemp1 // You can see here that the entire original XML document is still available // because at least one node in the XML is referenced by a variable. // The output is: // <?xml version="1.0" encoding="utf-8"?> // <a> // <b>BBB</b> // <c>CCC</c> // </a> // We can also see that "xml" contains an entirely new XML document: Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 // <?xml version="1.0" encoding="utf-8"?> // <z> // <x>XXX</x> // </z> // Send Destroy of hoXB End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.