Sample code for 30+ languages & platforms
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 C Downloads

C
#include <C_CkXml.h>

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

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

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

    xml = CkXml_Create();
    CkXml_putTag(xml,"FatturaElettronicaHeader");
    CkXml_UpdateChildContent(xml,"DatiTrasmissione|IdTrasmittente|IdPaese","IT");
    CkXml_UpdateChildContent(xml,"DatiTrasmissione|IdTrasmittente|IdCodice","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 = CkXml_FindChild(xml,"DatiTrasmissione|IdTrasmittente");
    index = CkXml_TagIndex(xT,"IdPaese");
    if (index < 0) {
        printf("nothing found at the given tag.\n");
        CkXml_Dispose(xml);
        return;
    }

    x1 = CkXml_NewChildAfter(xT,index,"NewTag","Content");
    CkXml_Dispose(x1);
    CkXml_Dispose(xT);

    // Show the resulting XML.
    printf("%s\n",CkXml_getXml(xml));


    CkXml_Dispose(xml);

    }