List<R>? getValue<R>(String key, R Function(XMLNode) action) => this[key] ?.expand((item) => (item as XMLChildren).body) .map(action) .toList();