Sample code for 30+ languages & platforms
Lua

Demonstrates the ChilkatPath XML Method

Demonstrates how to use the ChilkatPath method. This example uses the XML sample file pigs.xml. The pigs.xml file contains this content:

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

local xml = chilkat.Xml.new()

local success = xml:load_xml_file("qa_data/xml/pigs.xml")
if not success then
    print(xml.last_error_text)
    return
end

-- Get the content of the "species" node for the 1st animal:
local result = xml:chilkat_path("animal|species|*")
-- Output should be "pot belly pig"
print(result)

-- Get the content of the "type" node for the 2nd animal:
-- Indexing begins at 0.  Therefore, the 2nd direct child having
-- the tag "animal" is at index 1
result = xml:chilkat_path("animal[1]|type|*")
-- Output should be "House Pig"
print(result)

-- Find the pig having the name "Nigel" and display the
-- birth date.  To do this, we'll navigate to the node having
-- tag="name" with the exact content "Nigel", then navigate up,
-- and finally navigate back down to the "birth" node:
result = xml:chilkat_path("/C/name,Nigel|..|birth|*")
-- Output should be "June, 1991"
print(result)

-- Navigate to the 1st animal's picture and print the filename,
-- description, and caption.
-- The "$" updates the caller's internal pointer to reference
-- the node that is the result of evaluating the path.
-- An empty string is returned for success, and a NULL/nil/0
-- pointer (reference) is returned on failure.
result = xml:chilkat_path("animal|picture|$")
if not xml.last_method_success then
    print("Failed to navigate to animal|picture.")
    return
end

-- Display the contents of the file/description/caption child nodes
print("Picture Info:")
print(xml:get_child_content("file"))
print(xml:get_child_content("description"))
print(xml:get_child_content("caption"))

-- Return back to the root of the XML document:
xml:get_root2()

-- Display the value of the "spay-neuter" attribute of the 1st animal:
print("----")
result = xml:chilkat_path("animal|gender|(spay-neuter)")
print(result)