DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXml
String sResult
String sTemp1
Boolean bTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Get ComLoadXmlFile Of hoXml "qa_data/xml/pigs.xml" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoXml To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the content of the "species" node for the 1st animal:
Get ComChilkatPath Of hoXml "animal|species|*" To sResult
// Output should be "pot belly pig"
Showln sResult
// 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
Get ComChilkatPath Of hoXml "animal[1]|type|*" To sResult
// Output should be "House Pig"
Showln sResult
// 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:
Get ComChilkatPath Of hoXml "/C/name,Nigel|..|birth|*" To sResult
// Output should be "June, 1991"
Showln sResult
// 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.
Get ComChilkatPath Of hoXml "animal|picture|$" To sResult
Get ComLastMethodSuccess Of hoXml To bTemp1
If (bTemp1 <> True) Begin
Showln "Failed to navigate to animal|picture."
Procedure_Return
End
// Display the contents of the file/description/caption child nodes
Showln "Picture Info:"
Get ComGetChildContent Of hoXml "file" To sTemp1
Showln sTemp1
Get ComGetChildContent Of hoXml "description" To sTemp1
Showln sTemp1
Get ComGetChildContent Of hoXml "caption" To sTemp1
Showln sTemp1
// Return back to the root of the XML document:
Send ComGetRoot2 To hoXml
// Display the value of the "spay-neuter" attribute of the 1st animal:
Showln "----"
Get ComChilkatPath Of hoXml "animal|gender|(spay-neuter)" To sResult
Showln sResult
End_Procedure