Sample code for 30+ languages & platforms
Go

AddAttribute - Insert New Attribute in an XML Node

Demonstrates adding an name=value attribute to an XML element.

This example uses the XML sample file here: sample1.xml. The sample1.xml file contains this content:

Chilkat Go Downloads

Go
    success := false

    xml := chilkat.NewXml()

    success = xml.LoadXmlFile("qa_data/xml/sample1.xml")
    if success != true {
        fmt.Println(xml.LastErrorText())
        xml.DisposeXml()
        return
    }

    // Navigate to the "books" element:
    bFound := xml.FindChild2("books")
    if bFound == false {
        fmt.Println("No books child found!")
        xml.DisposeXml()
        return
    }

    numChildren := xml.NumChildren()

    i := 0
    for i < numChildren {

        // Navigate to the Nth book 
        xml.GetChild2(i)

        // Display the book title:
        fmt.Println(*xml.GetAttrValue("title"))

        // Add a new integer attribute:
        // Should never fail..
        xml.AddAttributeInt("bookId",i)

        // Add a new unread="yes" attribute:
        xml.AddAttribute("unread","yes")

        // Navigate back up to the parent:
        xml.GetParent2()

        i = i + 1
    }

    // Navigate back to the document root:
    xml.GetRoot2()

    // Save the updated document:
    success = xml.SaveXml("modified.xml")
    if success != true {
        fmt.Println(xml.LastErrorText())
        xml.DisposeXml()
        return
    }

    fmt.Println(*xml.GetXml())

    xml.DisposeXml()