Tcl
Tcl
Remove an XML Subtree
See more XML Examples
Demonstrates how to remove an XML subtree from an XML document.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
set xml [new_CkXml]
set success [CkXml_LoadXmlFile $xml "qa_data/xml/osszes.xml"]
# The XML file we're loading contains this:
# <?xml version="1.0" encoding="iso-8859-2" ?>
# <EXAMPLE>
# <OSSZES>
# <ROW TYPE="INS">477953
# <NUMBER>05107003972</NUMBER>
# </ROW>
# <ROW TYPE="INS">477954
# <NUMBER>05107001342</NUMBER>
# </ROW>
# <ROW TYPE="INS">477955
# <NUMBER>05107001342</NUMBER>
# </ROW>
# <ROW TYPE="INS">477956
# <NUMBER>05107000017</NUMBER>
# </ROW>**
# <ROW TYPE="INS">477957
# <NUMBER>05107002182</NUMBER>
# </ROW>
# </OSSZES>
# </EXAMPLE>
#
# We wish to remove this subtree:
# <ROW TYPE="INS">477956
# <NUMBER>05107000017</NUMBER>
# </ROW>
# Get another reference to the XML document.
# xml2 is a CkXml
set xml2 [CkXml_GetSelf $xml]
# Navigate to the node that is the root of the subtree to be deleted.
# In this case, we wish to find the node having tag "ROW" with content "477956"
set notUsed [CkXml_chilkatPath $xml2 "OSSZES|/C/ROW,*477956*|$"]
# Examine the xml2, it should be just the subtree.
puts [CkXml_getXml $xml2]
# Now detach xml2 from the it's XML document.
# xml2 will now be it's own XML document.
CkXml_RemoveFromTree $xml2
# Examine our original XML document. The subtree is removed:
puts [CkXml_getXml $xml]
delete_CkXml $xml2
delete_CkXml $xml