Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL oXml
LOCAL oXT
LOCAL nIndex
LOCAL oX1

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

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

oXml := CreateObject("Chilkat.Xml")
oXml:Tag := "FatturaElettronicaHeader"
oXml:UpdateChildContent("DatiTrasmissione|IdTrasmittente|IdPaese", "IT")
oXml: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>

oXT := oXml:FindChild("DatiTrasmissione|IdTrasmittente")
nIndex := oXT:TagIndex("IdPaese")
IF (nIndex < 0)
    ? "nothing found at the given tag."
    oXml:destroy()
    RETURN
ENDIF

oX1 := oXT:NewChildAfter(nIndex, "NewTag", "Content")
oX1:destroy()
oXT:destroy()

//  Show the resulting XML.
? oXml:GetXml()

oXml:destroy()