Sample code for 30+ languages & platforms
Delphi DLL

HasChildWithTag using a Tag Path

Demonstrates calling HasChildWithTag with a tag path.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Xml;

...

procedure TForm1.Button1Click(Sender: TObject);
var
xml: HCkXml;
hasChicago: Boolean;
hasNaperville: Boolean;
hasIllinois: Boolean;

begin
xml := CkXml_Create();

CkXml_putTag(xml,'world');

CkXml_NewChild2(xml,'north_america|united_states|california|san_francisco','Silicon Valley');
CkXml_NewChild2(xml,'north_america|united_states|california|san_diego','Birthplace of California');
CkXml_NewChild2(xml,'north_america|united_states|illinois|chicago','Windy City');

Memo1.Lines.Add(CkXml__getXml(xml));

// Produces the following XML
// 
// 	<?xml version="1.0" encoding="utf-8" ?>
// 	<world>
// 	    <north_america>
// 	        <united_states>
// 	            <california>
// 	                <san_francisco>Silicon Valley</san_francisco>
// 	                <san_diego>Birthplace of California</san_diego>
// 	            </california>
// 	            <illinois>
// 	                <chicago>Windy City</chicago>
// 	            </illinois>
// 	        </united_states>
// 	    </north_america>
// 	</world>
// 

hasChicago := CkXml_HasChildWithTag(xml,'north_america|united_states|illinois|chicago');
Memo1.Lines.Add('hasChicago = ' + IntToStr(Ord(hasChicago)));

hasNaperville := CkXml_HasChildWithTag(xml,'north_america|united_states|illinois|naperville');
Memo1.Lines.Add('hasNaperville = ' + IntToStr(Ord(hasNaperville)));

hasIllinois := CkXml_HasChildWithTag(xml,'north_america|united_states|illinois');
Memo1.Lines.Add('hasIllinois = ' + IntToStr(Ord(hasIllinois)));

CkXml_Dispose(xml);

end;