Sample code for 30+ languages & platforms
Ruby

Remove an XML Subtree

See more XML Examples

Demonstrates how to remove an XML subtree from an XML document.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

xml = Chilkat::CkXml.new()

success = xml.LoadXmlFile("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
xml2 = xml.GetSelf()

# 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"
notUsed = xml2.chilkatPath("OSSZES|/C/ROW,*477956*|$")

# Examine the xml2, it should be just the subtree.
print xml2.getXml() + "\n";

# Now detach xml2 from the it's XML document.
# xml2 will now be it's own XML document.
xml2.RemoveFromTree()

# Examine our original XML document.  The subtree is removed:
print xml.getXml() + "\n";