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