import 'dart:core'; import 'package:xml/xml.dart'; XmlElement findFirstElement( XmlNode node, String name, { bool recursive = false, String namespace, }) { try { return findElements(node, name, recursive: recursive, namespace: namespace) ?.first; } on StateError { return null; } } Iterable findElements( XmlNode node, String name, { bool recursive = false, String namespace, }) { try { if (recursive) { return node.findAllElements(name, namespace: namespace); } else { return node.findElements(name, namespace: namespace); } } on StateError { return null; } } bool parseBoolLiteral(XmlElement element, String tagName) { var v = findFirstElement(element, tagName)?.text?.toLowerCase()?.trim(); if (v == null) return false; return ['yes', 'true'].contains(v); }