Sample code for 30+ languages & platforms
Dart

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 Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final xml = CkXml();

  // The sample input XML is available at http://www.chilkatsoft.com/data/get_child.xml
  try {
    xml.loadXmlFile('get_child.xml');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // 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
  print('NumChildren = ${xml.numChildren}');

  // Iterate over the direct children by index. The first child
  // is at index 0.
  for (var i = 0; i < xml.numChildren; i++) {
    //  access the tag and content directly by index:
    print('$i: ${xml.getChildTagByIndex(i)} : ${xml.getChildContentByIndex(i)}');
  }

  print('-----');

  // Do the same as the above loop, but get the child node
  // and access the Tag and Content properties:
  for (var i = 0; i < xml.numChildren; i++) {
    final child = xml.getChild(i);
    print('$i: ${child.tag} : ${child.content}');
  }

  print('-----');

  // 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.
  for (var i = 0; i < xml.numChildren; i++) {
    // Navigate to the Nth child.  
    xml.getChild2(i);
    print('$i: ${xml.tag} : ${xml.content}');
    // Navigate back up to the parent:
    xml.getParent2();
  }

  print('-----');

  // Examine the result:
  print(xml.getXml());
}