Sample code for 30+ languages & platforms
Go

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 Go Downloads

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

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

    xml := chilkat.NewXml()
    xml.SetTag("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>

    xT := xml.FindChild("DatiTrasmissione|IdTrasmittente")
    index := xT.TagIndex("IdPaese")
    if index < 0 {
        fmt.Println("nothing found at the given tag.")
        xml.DisposeXml()
        return
    }

    x1 := xT.NewChildAfter(index,"NewTag","Content")
    x1.DisposeXml()
    xT.DisposeXml()

    // Show the resulting XML.
    fmt.Println(*xml.GetXml())

    xml.DisposeXml()