Sample code for 30+ languages & platforms
Tcl

Insert after Node with Tag

See more XML Examples

Demonstrates how to insert a new node as a sibling directly after a specified node having a given tag.

Note: This example requires Chilkat v9.5.0.76 or greater. The TagIndex method was introduced in v9.5.0.76

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

# First, let's create the following XML:

#   <FatturaElettronicaHeader>
#     <DatiTrasmissione>
#       <IdTrasmittente>
#         <IdPaese>IT</IdPaese>
#         <IdCodice>12345678</IdCodice>
#       </IdTrasmittente>
#     </DatiTrasmissione>
#   </FatturaElettronicaHeader>

set xml [new_CkXml]

CkXml_put_Tag $xml "FatturaElettronicaHeader"
CkXml_UpdateChildContent $xml "DatiTrasmissione|IdTrasmittente|IdPaese" "IT"
CkXml_UpdateChildContent $xml "DatiTrasmissione|IdTrasmittente|IdCodice" "12345678"

# Now insert a new node to get this XML:

#   <FatturaElettronicaHeader>
#     <DatiTrasmissione>
#       <IdTrasmittente>
#         <IdPaese>IT</IdPaese>
#         <NewTag>Content</NewTag>
#         <IdCodice>12345678</IdCodice>
#       </IdTrasmittente>
#     </DatiTrasmissione>
#   </FatturaElettronicaHeader>

# xT is a CkXml
set xT [CkXml_FindChild $xml "DatiTrasmissione|IdTrasmittente"]
set index [CkXml_TagIndex $xT "IdPaese"]
if {$index < 0} then {
    puts "nothing found at the given tag."
    delete_CkXml $xml
    exit
}

# x1 is a CkXml
set x1 [CkXml_NewChildAfter $xT $index "NewTag" "Content"]
delete_CkXml $x1

delete_CkXml $xT

# Show the resulting XML.
puts [CkXml_getXml $xml]

delete_CkXml $xml