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