DataFlex
DataFlex
GetChild* methods
See more XML Examples
Demonstrates several of the GetChild* methods.The input XML, available at http://www.chilkatsoft.com/data/get_child.xml, is this:
<root>
<fruit color="red">apple</fruit>
<fruit color="green">pear</fruit>
<veg color="orange">carrot</veg>
<meat animal="cow">beef</meat>
<xyz>
<fruit color="blue">blueberry</fruit>
<veg color="green">broccoli</veg>
</xyz>
<fruit color="purple">grape</fruit>
<cheese color="yellow">cheddar</cheese>
</root>
The output XML is this:
<abc b="pear" c="orange" a="130">Test</abc>
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXml
Variant vChild
Handle hoChild
Integer i
String sTemp1
String sTemp2
Integer iTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
// The sample input XML is available at http://www.chilkatsoft.com/data/get_child.xml
Get ComLoadXmlFile Of hoXml "get_child.xml" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoXml To sTemp1
Showln sTemp1
Procedure_Return
End
// The NumChildren property contains the number of direct
// child nodes. Note: The child nodes under "xyz" are NOT
// direct children of "root". Therefore, the "root" node has
// 7 direct children
Get ComNumChildren Of hoXml To iTemp1
Showln "NumChildren = " iTemp1
// Iterate over the direct children by index. The first child
// is at index 0.
Get ComNumChildren Of hoXml To iTemp1
For i From 0 To (iTemp1 - 1)
// access the tag and content directly by index:
Get ComGetChildTagByIndex Of hoXml i To sTemp1
Get ComGetChildContentByIndex Of hoXml i To sTemp2
Showln i ": " sTemp1 " : " sTemp2
Loop
Showln "-----"
// Do the same as the above loop, but get the child node
// and access the Tag and Content properties:
Get ComNumChildren Of hoXml To iTemp1
For i From 0 To (iTemp1 - 1)
Get ComGetChild Of hoXml i To vChild
If (IsComObject(vChild)) Begin
Get Create (RefClass(cComChilkatXml)) To hoChild
Set pvComObject Of hoChild To vChild
End
Get ComTag Of hoChild To sTemp1
Get ComContent Of hoChild To sTemp2
Showln i ": " sTemp1 " : " sTemp2
Send Destroy of hoChild
Loop
Showln "-----"
// Do the same as the above loop, but instead of creating
// a new object instance for each child, call GetChild2 to
// update the object's reference instead.
Get ComNumChildren Of hoXml To iTemp1
For i From 0 To (iTemp1 - 1)
// Navigate to the Nth child.
Get ComGetChild2 Of hoXml i To iSuccess
Get ComTag Of hoXml To sTemp1
Get ComContent Of hoXml To sTemp2
Showln i ": " sTemp1 " : " sTemp2
// Navigate back up to the parent:
Get ComGetParent2 Of hoXml To iSuccess
Loop
Showln "-----"
// Examine the result:
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
End_Procedure