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

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

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

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

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

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

    //  Show the resulting XML.
    std::cout << xml.getXml() << "\r\n";
    }