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 <C_CkXmlW.h>

void ChilkatSample(void)
    {
    HCkXmlW xml;
    HCkXmlW xT;
    int index;
    HCkXmlW x1;

    //  First, let's create the following XML:

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

    xml = CkXmlW_Create();
    CkXmlW_putTag(xml,L"FatturaElettronicaHeader");
    CkXmlW_UpdateChildContent(xml,L"DatiTrasmissione|IdTrasmittente|IdPaese",L"IT");
    CkXmlW_UpdateChildContent(xml,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>

    xT = CkXmlW_FindChild(xml,L"DatiTrasmissione|IdTrasmittente");
    index = CkXmlW_TagIndex(xT,L"IdPaese");
    if (index < 0) {
        wprintf(L"nothing found at the given tag.\n");
        CkXmlW_Dispose(xml);
        return;
    }

    x1 = CkXmlW_NewChildAfter(xT,index,L"NewTag",L"Content");
    CkXmlW_Dispose(x1);
    CkXmlW_Dispose(xT);

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


    CkXmlW_Dispose(xml);

    }