PureBasic
PureBasic
Demonstrates the ChilkatPath XML Method
Demonstrates how to use the ChilkatPath method. This example uses the XML sample file pigs.xml. The pigs.xml file contains this content:
Chilkat PureBasic Downloads
IncludeFile "CkXml.pb"
Procedure ChilkatExample()
success.i = 0
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkXml::ckLoadXmlFile(xml,"qa_data/xml/pigs.xml")
If success <> 1
Debug CkXml::ckLastErrorText(xml)
CkXml::ckDispose(xml)
ProcedureReturn
EndIf
; Get the content of the "species" node for the 1st animal:
result.s
result = CkXml::ckChilkatPath(xml,"animal|species|*")
; Output should be "pot belly pig"
Debug result
; Get the content of the "type" node for the 2nd animal:
; Indexing begins at 0. Therefore, the 2nd direct child having
; the tag "animal" is at index 1
result = CkXml::ckChilkatPath(xml,"animal[1]|type|*")
; Output should be "House Pig"
Debug result
; Find the pig having the name "Nigel" and display the
; birth date. To do this, we'll navigate to the node having
; tag="name" with the exact content "Nigel", then navigate up,
; and finally navigate back down to the "birth" node:
result = CkXml::ckChilkatPath(xml,"/C/name,Nigel|..|birth|*")
; Output should be "June, 1991"
Debug result
; Navigate to the 1st animal's picture and print the filename,
; description, and caption.
; The "$" updates the caller's internal pointer to reference
; the node that is the result of evaluating the path.
; An empty string is returned for success, and a NULL/nil/0
; pointer (reference) is returned on failure.
result = CkXml::ckChilkatPath(xml,"animal|picture|$")
If CkXml::ckLastMethodSuccess(xml) <> 1
Debug "Failed to navigate to animal|picture."
CkXml::ckDispose(xml)
ProcedureReturn
EndIf
; Display the contents of the file/description/caption child nodes
Debug "Picture Info:"
Debug CkXml::ckGetChildContent(xml,"file")
Debug CkXml::ckGetChildContent(xml,"description")
Debug CkXml::ckGetChildContent(xml,"caption")
; Return back to the root of the XML document:
CkXml::ckGetRoot2(xml)
; Display the value of the "spay-neuter" attribute of the 1st animal:
Debug "----"
result = CkXml::ckChilkatPath(xml,"animal|gender|(spay-neuter)")
Debug result
CkXml::ckDispose(xml)
ProcedureReturn
EndProcedure