|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Delphi DLL) Parsing XML Children Having Identical TagsDemonstrates how to deal with XML where child elements may have identical tags. 
 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; success: Boolean; numPhoneNumbers: Integer; i: Integer; xPhoneNumber: HCkXml; numGroupMemberships: Integer; xMembership: HCkXml; begin // This example will get the phoneNumber's and groupMembershihpInfo's from the following XML: // <?xml version="1.0" encoding="UTF-8" ?> // <someEntries> // <entry> // <id>123</id> // <updated>2017-07-19T05:19:57.761Z</updated> // <app:edited xmlns:app="http://www.w3.org/2007/app">2017-07-19T05:19:57.761Z</app:edited> // <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/contact/2008#contact"/> // <title>George Costanza</title> // <gd:name> // <gd:fullName>George Costanza</gd:fullName> // <gd:givenName>George</gd:givenName> // <gd:familyName>Costanza</gd:familyName> // </gd:name> // <gd:phoneNumber rel="http://schemas.google.com/g/2005#home">(555) 123-4567</gd:phoneNumber> // <gd:phoneNumber rel="http://schemas.google.com/g/2005#mobile">(555) 444-8877</gd:phoneNumber> // <gd:phoneNumber rel="http://schemas.google.com/g/2005#work">(555) 678-1111</gd:phoneNumber> // <gContact:groupMembershipInfo deleted="false" href="http://www.google.com/123"/> // <gContact:groupMembershipInfo deleted="false" href="http://www.google.com/456"/> // </entry> // </someEntries> // xml := CkXml_Create(); success := CkXml_LoadXmlFile(xml,'qa_data/xml/georgeCostanza.xml'); numPhoneNumbers := CkXml_NumChildrenHavingTag(xml,'entry|*:phoneNumber'); i := 0; while i < numPhoneNumbers do begin xPhoneNumber := CkXml_GetNthChildWithTag(xml,'entry|*:phoneNumber',i); Memo1.Lines.Add(CkXml__content(xPhoneNumber)); CkXml_Dispose(xPhoneNumber); i := i + 1; end; Memo1.Lines.Add('----'); numGroupMemberships := CkXml_NumChildrenHavingTag(xml,'entry|*:groupMembershipInfo'); i := 0; while i < numGroupMemberships do begin xMembership := CkXml_GetNthChildWithTag(xml,'entry|*:groupMembershipInfo',i); Memo1.Lines.Add(CkXml__getAttrValue(xMembership,'href')); CkXml_Dispose(xMembership); i := i + 1; end; CkXml_Dispose(xml); end; | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.