Iterable<UXmlNode> descendants(String childName) sync* { for (final UXmlNode node in children) { if (node.name == childName) yield node; yield* node.descendants(childName); } }