Sample code for 30+ languages & platforms
Unicode C

Remove an XML Subtree

See more XML Examples

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

Chilkat Unicode C Downloads

Unicode C
#include <C_CkXmlW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkXmlW xml;
    HCkXmlW xml2;
    const wchar_t *notUsed;

    success = FALSE;

    xml = CkXmlW_Create();

    success = CkXmlW_LoadXmlFile(xml,L"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 = CkXmlW_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 = CkXmlW_chilkatPath(xml2,L"OSSZES|/C/ROW,*477956*|$");

    //  Examine the xml2, it should be just the subtree.
    wprintf(L"%s\n",CkXmlW_getXml(xml2));

    //  Now detach xml2 from the it's XML document.
    //  xml2 will now be it's own XML document.
    CkXmlW_RemoveFromTree(xml2);

    //  Examine our original XML document.  The subtree is removed:
    wprintf(L"%s\n",CkXmlW_getXml(xml));

    CkXmlW_Dispose(xml2);


    CkXmlW_Dispose(xml);

    }