PureBasic
PureBasic
Fetch ISBN XML from isbndb.com and Parse
See more HTTP Examples
Demonstrates sending a query to isbndb.com and parsing the XML response.Chilkat PureBasic Downloads
IncludeFile "CkXml.pb"
IncludeFile "CkHttp.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; The access_key in this URL is a valid access key, but limited to 100 queries per day.
; If the key does not work, it may be that others were testing and exhausted the limit.
strXml.s = CkHttp::ckQuickGetStr(http,"http://isbndb.com/api/books.xml?access_key=OV8L2Y9I&results=details&index1=isbn&value1=0443074348")
If CkHttp::ckLastMethodSuccess(http) <> 1
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
ProcedureReturn
EndIf
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkXml::ckLoadXml(xml,strXml)
; The XML returned for this URL is the following:
; <?xml version="1.0" encoding="UTF-8" ?>
; <ISBNdb server_time="2007-10-25T14:07:25Z">
; <BookList total_results="1" page_size="10" page_number="1" shown_results="1">
; <BookData book_id="diagnostic_histopathology_of_tumors_2_volume_set_with_cd_rom" isbn="0443074348">
; <Title>Diagnostic Histopathology of Tumors: 2-Volume Set with CD-ROMs</Title>
; <TitleLong>Diagnostic Histopathology of Tumors: 2-Volume Set with CD-ROMs (Diagnostic Histopathology of Tumors (Fletcher))</TitleLong>
; <AuthorsText>Christopher D. M. Fletcher (Editor)</AuthorsText>
; <PublisherText publisher_id="churchill_livingstone">Churchill Livingstone</PublisherText>
; <Details dewey_decimal="616" physical_description_text="2166 pages" language="" edition_info="Hardcover; 2007-03-13" dewey_decimal_normalized="616" lcc_number="" change_time="2006-12-13T14:53:42Z" price_time="2007-10-25T01:12:13Z" />
; </BookData>
; </BookList>
; </ISBNdb>
; First, navigate to the BookData node:
success = CkXml::ckFirstChild2(xml)
success = CkXml::ckFirstChild2(xml)
; Show the Title and AuthorsText:
Debug CkXml::ckGetChildContent(xml,"Title")
Debug CkXml::ckGetChildContent(xml,"AuthorsText")
; Show the publisher_id attribute of the PublisherText node:
xml2.i
xml2 = CkXml::ckFindChild(xml,"PublisherText")
Debug CkXml::ckGetAttrValue(xml2,"publisher_id")
CkXml::ckDispose(xml2)
; Save the XML to a file:
success = CkXml::ckSaveXml(xml,"book.xml")
CkHttp::ckDispose(http)
CkXml::ckDispose(xml)
ProcedureReturn
EndProcedure