Sample code for 30+ languages & platforms
Swift

XML NewChildBefore

Demonstrates the Chilkat.NewChildBefore method.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let xml = CkoXml()!

    xml.tag = "order"
    xml.newChild2(tagPath: "order_billing_info|price_list", content: "Listino Italia")
    xml.newChild2(tagPath: "order_billing_info|price_list_id", content: "1")
    xml.newChild2(tagPath: "order_billing_info|first_name", content: "Francesco")

    print("\(xml.getXml()!)")

    // We now have the following XML:

    // <?xml version="1.0" encoding="utf-8"?>
    // <order>
    //     <order_billing_info>
    //         <price_list>Listino Italia</price_list>
    //         <price_list_id>1</price_list_id>
    //         <first_name>Francesco</first_name>
    //     </order_billing_info>
    // </order>

    // If there is no "customer_id" element under "order_billing_info", then add it.
    if xml.hasChild(withTag: "order_billing_info|customer_id") == true {
        print("customer_id already exists, nothing to do...")
        return
    }

    // Add the customer_id element just before the "price_list" element.

    // Get the "order_billing_info" element
    var orderBillingInfo: CkoXml? = xml.findChild(tagPath: "order_billing_info")

    // Call NewChildBefore to add an XML element <customer_id> before <price_list>
    // First get the index of the element price_list
    var index: Int = orderBillingInfo!.tagIndex(tagPath: "price_list").intValue
    print("index = \(index)")

    // Add the "customer_id" element just before specified index.
    var xCustId: CkoXml? = orderBillingInfo!.newChild(before: index, tag: "customer_id", content: "1234")
    xCustId = nil
    orderBillingInfo = nil

    print("\(xml.getXml()!)")

    // We now have:

    // <?xml version="1.0" encoding="utf-8"?>
    // <order>
    //     <order_billing_info>
    //         <customer_id>1234</customer_id>
    //         <price_list>Listino Italia</price_list>
    //         <price_list_id>1</price_list_id>
    //         <first_name>Francesco</first_name>
    //     </order_billing_info>
    // </order>

}