Sample code for 30+ languages & platforms
PureBasic

Demonstrate the XML FindNextRecord Method

See more XML Examples

Imagine we have an XML file as follows:
<CompleteMultipartUpload>
  <Part>
    <PartNumber>1</PartNumber>
    <ETag>abc</ETag>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <ETag>def</ETag>
  </Part>
  <Part>
    <PartNumber>3</PartNumber>
    <ETag>ghi</ETag>
  </Part>
</CompleteMultipartUpload>
We want to find the record where PartNumber = 2. To do so, we simply position ourselves at the first "Part" tag, and then call FindNextRecord. (See below..)

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkXml.pb"

Procedure ChilkatExample()

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

    CkXml::ckLoadXmlFile(xml,"qa_data/xml/multipartUpload.xml")

    ; Position ourselves at the 1st record.
    CkXml::ckGetChild2(xml,0)

    foundRec.i = CkXml::ckFindNextRecord(xml,"PartNumber","2")
    If CkXml::ckLastMethodSuccess(xml) = 1
        Debug "Found the record where PartNumber = 2."
        Debug CkXml::ckGetXml(foundRec)

        ; Let's examine the ETag for this record...
        Debug "ETag for PartNumber 2 = " + CkXml::ckGetChildContent(foundRec,"ETag")
        CkXml::ckDispose(foundRec)

    Else
        Debug "No record exists where PartNumber = 2."
    EndIf

    ; What if we want to find the record where ETag = "abc"?
    foundRec = CkXml::ckFindNextRecord(xml,"ETag","abc")
    If CkXml::ckLastMethodSuccess(xml) = 1
        Debug "Found the record where ETag = abc"
        Debug CkXml::ckGetXml(foundRec)

        ; Let's examine the PartNumber for this record...
        Debug "Part number for Etag(abc) = " + CkXml::ckGetChildContent(foundRec,"PartNumber")
        CkXml::ckDispose(foundRec)

    Else
        Debug "No record exists where ETag = abc."
    EndIf

    ; Go back to the XML root..
    CkXml::ckGetRoot2(xml)


    CkXml::ckDispose(xml)


    ProcedureReturn
EndProcedure