Sample code for 30+ languages & platforms
Lua

Parsing XML Children Having Identical Tags

See more XML Examples

Demonstrates how to deal with XML where child elements may have identical tags.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- 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>
--

local xml = chilkat.Xml.new()

local success = xml:load_xml_file("qa_data/xml/georgeCostanza.xml")

local numPhoneNumbers = xml:num_children_having_tag("entry|*:phoneNumber")
local i = 0
while i < numPhoneNumbers do
    local xPhoneNumber = xml:get_nth_child_with_tag("entry|*:phoneNumber", i)
    print(xPhoneNumber.content)

    i = i + 1
end

print("----")

local numGroupMemberships = xml:num_children_having_tag("entry|*:groupMembershipInfo")
i = 0
while i < numGroupMemberships do
    local xMembership = xml:get_nth_child_with_tag("entry|*:groupMembershipInfo", i)
    print(xMembership:get_attr_value("href"))

    i = i + 1
end