Sample code for 30+ languages & platforms
Dart

Handling Namespaces in XML Tags

See more XML Examples

Demonstrates new features added in Chilkat v9.5.0.77 for helping with namespace prefixed tags.

Chilkat Dart Downloads

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

void main() {
  // First create some XML using namespace prefixed tags.

  // Create this XML. 
  // Use this online tool to generate the code from sample XML: 
  // Generate Code to Create XML

  // <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  //    xmlns:scm="http://www.springcm.com/atlas/webservices/v201308/scm/">
  //    <soapenv:Header/>
  //    <soapenv:Body>
  //       <scm:AccountGetCurrent>
  //          <scm:token>123</scm:token>
  //       </scm:AccountGetCurrent>
  //    </soapenv:Body>
  // </soapenv:Envelope>

  final xml = CkXml();
  xml.tag = 'soapenv:Envelope';
  xml.addAttribute('xmlns:soapenv', 'http://schemas.xmlsoap.org/soap/envelope/');
  xml.addAttribute('xmlns:scm', 'http://www.springcm.com/atlas/webservices/v201308/scm/');
  xml.updateChildContent('soapenv:Header', '');
  xml.updateChildContent('soapenv:Body|scm:AccountGetCurrent|scm:token', '123');

  // Go to the "Body" tag, regardless of namespace prefix.
  final CkXml xmlBody;
  try {
    xmlBody = xml.findChild('*:Body');
  } on ChilkatException {
    print('Body child not found.');
    return;
  }

  // Get the full tag w/ namespace prefix:
  // Output is "soapenv:Body"
  print(xmlBody.tag);

  // Get the namespace prefix:
  // Output is "soapenv"
  print(xmlBody.tagNsPrefix);

  // Get the unprefixed tag:
  // Output is "Body"
  print(xmlBody.tagUnprefixed);

  // Check to see if the unprefixed tag equals "Body"
  final isBodyTag = xmlBody.tagUnpEquals('Body');
  print('isBodyTag = $isBodyTag');

  // Check to see if the namespace prefix equals "soapenv";
  final isSoapenv = xmlBody.tagNsEquals('soapenv');
  print('isSoapenv = $isSoapenv');

  // Change just the namespace prefix of the tag
  xmlBody.tagNsPrefix = 'se';
  // The tag has changed from "soapenv:Body" to "se:Body"
  print(xmlBody.tag);

  // Change the unprefixed part of the tag.
  xmlBody.tagUnprefixed = 'Bodie';
  // The tag has changed from "se:Body" to "se:Bodie"
  print(xmlBody.tag);
}