Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoXml
    Variant vXT
    Handle hoXT
    Integer iIndex
    Variant vX1
    Handle hoX1
    String sTemp1

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

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

    Get Create (RefClass(cComChilkatXml)) To hoXml
    If (Not(IsComObjectCreated(hoXml))) Begin
        Send CreateComObject of hoXml
    End
    Set ComTag Of hoXml To "FatturaElettronicaHeader"
    Send ComUpdateChildContent To hoXml "DatiTrasmissione|IdTrasmittente|IdPaese" "IT"
    Send ComUpdateChildContent To hoXml "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>

    Get ComFindChild Of hoXml "DatiTrasmissione|IdTrasmittente" To vXT
    If (IsComObject(vXT)) Begin
        Get Create (RefClass(cComChilkatXml)) To hoXT
        Set pvComObject Of hoXT To vXT
    End
    Get ComTagIndex Of hoXT "IdPaese" To iIndex
    If (iIndex < 0) Begin
        Showln "nothing found at the given tag."
        Procedure_Return
    End

    Get ComNewChildAfter Of hoXT iIndex "NewTag" "Content" To vX1
    If (IsComObject(vX1)) Begin
        Get Create (RefClass(cComChilkatXml)) To hoX1
        Set pvComObject Of hoX1 To vX1
    End
    Send Destroy of hoX1
    Send Destroy of hoXT

    // Show the resulting XML.
    Get ComGetXml Of hoXml To sTemp1
    Showln sTemp1


End_Procedure