Delphi Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
DKIM / DomainKey
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
NTLM
POP3
RSA
S/MIME
SMTP
Socket
Spider
SFTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Amazon S3
Byte Array
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

Type Conversion

 

Article: Understanding COM References in Delphi

(Delphi) XML Sort by Content

Demonstrates the SortByContent method.

The input XML, available at http://www.chilkatsoft.com/data/fruitSort2.xml, is this:

<root>
    <fruits>
        <apples>
            <apple>fuji</apple>
            <apple>gala</apple>
            <apple>granny smith</apple>
            <apple>honeycrisp</apple>
            <apple>mcintosh</apple>
        </apples>
        <fruit>banana</fruit>
        <fruit>blackberry</fruit>
        <fruit>blueberry</fruit>
        <fruit>orange</fruit>
        <fruit>pear</fruit>
    </fruits>
</root>

Download Chilkat XML ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATXMLLib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
xml: CHILKATXMLLib_TLB.IChilkatXml;
xSortRoot: CHILKATXMLLib_TLB.IChilkatXml;
success: Integer;
bAscending: Integer;

begin
xml := TChilkatXml.Create(Self).ControlInterface;

//  The sample input XML is available at http://www.chilkatsoft.com/data/fruitSort2.xml
success := xml.LoadXmlFile('fruitSort2.xml');
if (success <> 1) then
  begin
    Memo1.Lines.Add(xml.LastErrorText);
    Exit;
  end;

//  Sort the direct children under the "fruits" node by tag:
xSortRoot := xml.FindChild('fruits');

//  Sort in ascending order.
bAscending := 1;
xSortRoot.SortByContent(bAscending);

//  Show the result:
Memo1.Lines.Add(xml.GetXml());

//  Note:  The "apples" node contains child nodes, but its
//  text content is 0-length (empty).  Therefore, when sorting in
//  ascending order, it will be positioned before the direct
//  children containing non-empty content.
//  
<root>
    <fruits>
        <apples>
            <apple>granny smith</apple>
            <apple>gala</apple>
            <apple>fuji</apple>
            <apple>mcintosh</apple>
            <apple>honeycrisp</apple>
        </apples>
        <fruit>banana</fruit>
        <fruit>blackberry</fruit>
        <fruit>blueberry</fruit>
        <fruit>orange</fruit>
        <fruit>pear</fruit>
    </fruits>
</root>
// Sort the direct children under the "apples" node: xSortRoot.FindChild2('apples'); xSortRoot.SortByContent(bAscending); Memo1.Lines.Add(xml.GetXml()); //
<root>
    <fruits>
        <apples>
            <apple>fuji</apple>
            <apple>gala</apple>
            <apple>granny smith</apple>
            <apple>honeycrisp</apple>
            <apple>mcintosh</apple>
        </apples>
        <fruit>banana</fruit>
        <fruit>blackberry</fruit>
        <fruit>blueberry</fruit>
        <fruit>orange</fruit>
        <fruit>pear</fruit>
    </fruits>
</root>
end;
 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · XML Parser