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