C
C
Remove an XML Subtree
See more XML Examples
Demonstrates how to remove an XML subtree from an XML document.Chilkat C Downloads
#include <C_CkXml.h>
void ChilkatSample(void)
{
BOOL success;
HCkXml xml;
HCkXml xml2;
const char *notUsed;
success = FALSE;
xml = CkXml_Create();
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 = 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"
notUsed = CkXml_chilkatPath(xml2,"OSSZES|/C/ROW,*477956*|$");
// Examine the xml2, it should be just the subtree.
printf("%s\n",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:
printf("%s\n",CkXml_getXml(xml));
CkXml_Dispose(xml2);
CkXml_Dispose(xml);
}