Sample code for 30+ languages & platforms
Unicode C++

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 Unicode C++ Downloads

Unicode C++
#include <CkXmlW.h>

void ChilkatSample(void)
    {
    // First, let's create the following XML:

    //   <FatturaElettronicaHeader>
    //     <DatiTrasmissione>
    //       <IdTrasmittente>
    //         <IdPaese>IT</IdPaese>
    //         <IdCodice>12345678</IdCodice>
    //       </IdTrasmittente>
    //     </DatiTrasmissione>
    //   </FatturaElettronicaHeader>

    CkXmlW xml;
    xml.put_Tag(L"FatturaElettronicaHeader");
    xml.UpdateChildContent(L"DatiTrasmissione|IdTrasmittente|IdPaese",L"IT");
    xml.UpdateChildContent(L"DatiTrasmissione|IdTrasmittente|IdCodice",L"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>

    CkXmlW *xT = xml.FindChild(L"DatiTrasmissione|IdTrasmittente");
    int index = xT->TagIndex(L"IdPaese");
    if (index < 0) {
        wprintf(L"nothing found at the given tag.\n");
        return;
    }

    CkXmlW *x1 = xT->NewChildAfter(index,L"NewTag",L"Content");
    delete x1;
    delete xT;

    // Show the resulting XML.
    wprintf(L"%s\n",xml.getXml());
    }