Visual FoxPro
Visual FoxPro
Parsing XML Children Having Identical Tags
See more XML Examples
Demonstrates how to deal with XML where child elements may have identical tags.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loXml
LOCAL lnNumPhoneNumbers
LOCAL i
LOCAL loXPhoneNumber
LOCAL lnNumGroupMemberships
LOCAL loXMembership
lnSuccess = 0
* 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>
*
loXml = CreateObject('Chilkat.Xml')
lnSuccess = loXml.LoadXmlFile("qa_data/xml/georgeCostanza.xml")
lnNumPhoneNumbers = loXml.NumChildrenHavingTag("entry|*:phoneNumber")
i = 0
DO WHILE i < lnNumPhoneNumbers
loXPhoneNumber = loXml.GetNthChildWithTag("entry|*:phoneNumber",i)
? loXPhoneNumber.Content
RELEASE loXPhoneNumber
i = i + 1
ENDDO
? "----"
lnNumGroupMemberships = loXml.NumChildrenHavingTag("entry|*:groupMembershipInfo")
i = 0
DO WHILE i < lnNumGroupMemberships
loXMembership = loXml.GetNthChildWithTag("entry|*:groupMembershipInfo",i)
? loXMembership.GetAttrValue("href")
RELEASE loXMembership
i = i + 1
ENDDO
RELEASE loXml