Sample code for 30+ languages & platforms
PureBasic

Create MIME Containing XML

See more MIME Examples

Calls SetBodyFromXml to load XML into the MIME body. Also sets the Content-Type header to "text/xml", and the Content-Transfer-Encoding to an appropriate transfer encoding based on the characters found in the XML.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkMime.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

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

    ; Add a few header fields:
    success = CkMime::ckAddHeaderField(mime,"Description","this is a test")
    success = CkMime::ckAddHeaderField(mime,"MyId","123")

    xmlData.s = "<something>123</something>"

    ; Set the mime body via SetBodyFromXml.  This also
    ; has the intended side-effect of adding the Content-Type
    ; and Content-Transfer-Encoding headers.
    success = CkMime::ckSetBodyFromXml(mime,xmlData)

    Debug CkMime::ckGetMime(mime)

    ; The MIME should look like this:

    ; Description: this is a test
    ; MyId: 123
    ; Content-Type: text/xml; 
    ; Content-Transfer-Encoding: 7bit
    ; 
    ; <something>123</something>

    ; Note: The Content-Transfer-Encoding may be changed.
    ; For example, to use "base64", do this:
    CkMime::setCkEncoding(mime, "base64")

    ; Show the MIME again, this time using the base64 
    ; transfer encoding:
    Debug CkMime::ckGetMime(mime)

    ; It should look like this:

    ; Description: this is a test
    ; MyId: 123
    ; Content-Type: text/xml; 
    ; Content-Transfer-Encoding: base64
    ; 
    ; PHNvbWV0aGluZz4xMjM8L3NvbWV0aGluZz4=


    CkMime::ckDispose(mime)


    ProcedureReturn
EndProcedure