PowerBuilder
PowerBuilder
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 PowerBuilder Downloads
integer li_rc
oleobject loo_Xml
oleobject loo_FoundRec
loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")
if li_rc < 0 then
destroy loo_Xml
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_Xml.LoadXmlFile("qa_data/xml/multipartUpload.xml")
// Position ourselves at the 1st record.
loo_Xml.GetChild2(0)
loo_FoundRec = loo_Xml.FindNextRecord("PartNumber","2")
if loo_Xml.LastMethodSuccess = 1 then
Write-Debug "Found the record where PartNumber = 2."
Write-Debug loo_FoundRec.GetXml()
// Let's examine the ETag for this record...
Write-Debug "ETag for PartNumber 2 = " + loo_FoundRec.GetChildContent("ETag")
destroy loo_FoundRec
else
Write-Debug "No record exists where PartNumber = 2."
end if
// What if we want to find the record where ETag = "abc"?
loo_FoundRec = loo_Xml.FindNextRecord("ETag","abc")
if loo_Xml.LastMethodSuccess = 1 then
Write-Debug "Found the record where ETag = abc"
Write-Debug loo_FoundRec.GetXml()
// Let's examine the PartNumber for this record...
Write-Debug "Part number for Etag(abc) = " + loo_FoundRec.GetChildContent("PartNumber")
destroy loo_FoundRec
else
Write-Debug "No record exists where ETag = abc."
end if
// Go back to the XML root..
loo_Xml.GetRoot2()
destroy loo_Xml