Sample code for 30+ languages & platforms
Dart

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

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

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

  try {
    xml.loadXmlFile('qa_data/xml/pigs.xml');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Get the content of the "species" node for the 1st animal:
  var result = '';
  result = xml.chilkatPath('animal|species|*');
  // Output should be "pot belly pig"
  print(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 = xml.chilkatPath('animal[1]|type|*');
  // Output should be "House Pig"
  print(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 = xml.chilkatPath('/C/name,Nigel|..|birth|*');
  // Output should be "June, 1991"
  print(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.  
  try {
    result = xml.chilkatPath('animal|picture|\$');
  } on ChilkatException {
    print('Failed to navigate to animal|picture.');
    return;
  }

  // Display the contents of the file/description/caption child nodes
  print('Picture Info:');
  print(xml.getChildContent('file'));
  print(xml.getChildContent('description'));
  print(xml.getChildContent('caption'));

  // Return back to the root of the XML document:
  xml.getRoot2();

  // Display the value of the "spay-neuter" attribute of the 1st animal:
  print('----');
  result = xml.chilkatPath('animal|gender|(spay-neuter)');
  print(result);
}