Sample code for 30+ languages & platforms
Swift

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

Swift

func chilkatTest() {
    var success: Bool = false

    let xml = CkoXml()!

    success = xml.loadFile(path: "qa_data/xml/pigs.xml")
    if success != true {
        print("\(xml.lastErrorText!)")
        return
    }

    // Get the content of the "species" node for the 1st animal:
    var result: String?
    result = xml.chilkatPath(cmd: "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.chilkatPath(cmd: "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.chilkatPath(cmd: "/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.chilkatPath(cmd: "animal|picture|$")
    if xml.lastMethodSuccess != true {
        print("Failed to navigate to animal|picture.")
        return
    }

    // Display the contents of the file/description/caption child nodes
    print("Picture Info:")
    print("\(xml.getChildContent(tagPath: "file")!)")
    print("\(xml.getChildContent(tagPath: "description")!)")
    print("\(xml.getChildContent(tagPath: "caption")!)")

    // Return back to the root of the XML document:
    xml.getRoot2()

    // Display the value of the "spay-neuter" attribute of the 1st animal:
    print("----")
    result = xml.chilkatPath(cmd: "animal|gender|(spay-neuter)")
    print("\(result!)")

}