Sample code for 30+ languages & platforms
Tcl

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

Tcl

load ./chilkat.dll

set success 0

set xml [new_CkXml]

set success [CkXml_LoadXmlFile $xml "qa_data/xml/sample1.xml"]
if {$success != 1} then {
    puts [CkXml_lastErrorText $xml]
    delete_CkXml $xml
    exit
}

# Navigate to the "books" element:
set bFound [CkXml_FindChild2 $xml "books"]
if {$bFound == 0} then {
    puts "No books child found!"
    delete_CkXml $xml
    exit
}

set numChildren [CkXml_get_NumChildren $xml]

set i 0
while {$i < $numChildren} {

    # Navigate to the Nth book 
    CkXml_GetChild2 $xml $i

    # Display the book title:
    puts [CkXml_getAttrValue $xml title]

    # Add a new integer attribute:
    # Should never fail..
    CkXml_AddAttributeInt $xml "bookId" $i

    # Add a new unread="yes" attribute:
    CkXml_AddAttribute $xml "unread" "yes"

    # Navigate back up to the parent:
    CkXml_GetParent2 $xml

    set i [expr $i + 1]
}

# Navigate back to the document root:
CkXml_GetRoot2 $xml

# Save the updated document:
set success [CkXml_SaveXml $xml "modified.xml"]
if {$success != 1} then {
    puts [CkXml_lastErrorText $xml]
    delete_CkXml $xml
    exit
}

puts [CkXml_getXml $xml]

delete_CkXml $xml