Tcl
Tcl
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 Tcl Downloads
load ./chilkat.dll
set success 0
set xml [new_CkXml]
set success [CkXml_LoadXmlFile $xml "qa_data/xml/pigs.xml"]
if {$success != 1} then {
puts [CkXml_lastErrorText $xml]
delete_CkXml $xml
exit
}
# Get the content of the "species" node for the 1st animal:
set result [CkXml_chilkatPath $xml "animal|species|*"]
# Output should be "pot belly pig"
puts "$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
set result [CkXml_chilkatPath $xml "animal[1]|type|*"]
# Output should be "House Pig"
puts "$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:
set result [CkXml_chilkatPath $xml "/C/name,Nigel|..|birth|*"]
# Output should be "June, 1991"
puts "$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.
set result [CkXml_chilkatPath $xml "animal|picture|$"]
if {[CkXml_get_LastMethodSuccess $xml] != 1} then {
puts "Failed to navigate to animal|picture."
delete_CkXml $xml
exit
}
# Display the contents of the file/description/caption child nodes
puts "Picture Info:"
puts [CkXml_getChildContent $xml file]
puts [CkXml_getChildContent $xml description]
puts [CkXml_getChildContent $xml caption]
# Return back to the root of the XML document:
CkXml_GetRoot2 $xml
# Display the value of the "spay-neuter" attribute of the 1st animal:
puts "----"
set result [CkXml_chilkatPath $xml "animal|gender|(spay-neuter)"]
puts "$result"
delete_CkXml $xml