DataFlex
DataFlex
Traverse the XML Tree
See more XML Examples
Demonstrates how to traverse all nodes in an XML tree.Note: This example requires Chilkat v9.5.0.77 or greater.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXml
Variant vSbState
Handle hoSbState
String sTemp1
Move False To iSuccess
// Use the NextInTraversal2 method to traverse all nodes in the XML tree rooted at the caller.
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Get ComLoadXmlFile Of hoXml "qa_data/xml/twoPigs.xml" To iSuccess
// This is the XML traversed in this example:
// <pig-rescue>
// <herd name="Cathy">
// <species name="pot belly pig">
// <animal>
// <name>Molly II</name>
// <birth>February, 1998</birth>
// <in-date>January, 2000</in-date>
// <from>Middle Ave.</from>
// <gender spay-neuter="yes">F</gender>
// <info>Molly came from a place where an old, ill man had too many animals.
// The animals were seldom fed and rats would eat the newborn piglets.
// When Molly was found at one week old, she was the only piglet of
// her siblings who did not get stepped on by a cow. She is a sweet,
// friendly pig who likes to hang out on Cathy's porch on the lounge
// pad.
// </info>
// </animal>
// <animal>
// <name>Nigel</name>
// <birth>June, 1991</birth>
// <in-date>August, 1991</in-date>
// <from>Breeder</from>
// <gender spay-neuter="no">M</gender>
// <info>
// Nigel was the first pig and the reason for the rescue in the
// first place. He is 13 now and doing well, but takes a number
// of medications, as you can see below.
// </info>
// </animal>
// </species>
// </herd>
// </pig-rescue>
// The sbState is an object used to keep track of the current state of the traversal.
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbState
If (Not(IsComObjectCreated(hoSbState))) Begin
Send CreateComObject of hoSbState
End
Get pvComObject of hoSbState to vSbState
While ((ComNextInTraversal2(hoXml, vSbState)) <> False)
Get ComTag Of hoXml To sTemp1
Showln sTemp1
Get ComTagPath Of hoXml To sTemp1
Showln sTemp1
Showln ""
Loop
// Produces the following output:
// herd
// herd
//
// species
// herd|species
//
// animal
// herd|species|animal[0]
//
// name
// herd|species|animal[0]|name
//
// birth
// herd|species|animal[0]|birth
//
// in-date
// herd|species|animal[0]|in-date
//
// from
// herd|species|animal[0]|from
//
// gender
// herd|species|animal[0]|gender
//
// info
// herd|species|animal[0]|info
//
// animal
// herd|species|animal[1]
//
// name
// herd|species|animal[1]|name
//
// birth
// herd|species|animal[1]|birth
//
// in-date
// herd|species|animal[1]|in-date
//
// from
// herd|species|animal[1]|from
//
// gender
// herd|species|animal[1]|gender
//
// info
// herd|species|animal[1]|info
//
End_Procedure