Sample code for 30+ languages & platforms
PureBasic

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

PureBasic
IncludeFile "CkXml.pb"

Procedure ChilkatExample()

    ; First, let's create the following XML:

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

    xml.i = CkXml::ckCreate()
    If xml.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkXml::setCkTag(xml, "FatturaElettronicaHeader")
    CkXml::ckUpdateChildContent(xml,"DatiTrasmissione|IdTrasmittente|IdPaese","IT")
    CkXml::ckUpdateChildContent(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.i = CkXml::ckFindChild(xml,"DatiTrasmissione|IdTrasmittente")
    index.i = CkXml::ckTagIndex(xT,"IdPaese")
    If index < 0
        Debug "nothing found at the given tag."
        CkXml::ckDispose(xml)
        ProcedureReturn
    EndIf

    x1.i = CkXml::ckNewChildAfter(xT,index,"NewTag","Content")
    CkXml::ckDispose(x1)

    CkXml::ckDispose(xT)

    ; Show the resulting XML.
    Debug CkXml::ckGetXml(xml)


    CkXml::ckDispose(xml)


    ProcedureReturn
EndProcedure