XmlTag (@NotNull XmlTag rootTag, DomElement... children) { Set<XmlTag> childrenTags = new HashSet<>(); for (DomElement child : children) { if (child != null) { childrenTags.add(child.getXmlTag()); } } XmlTag[] subTags = rootTag.getSubTags(); for (int i = subTags.length - 1; i >= 0; i--) { if (childrenTags.contains(subTags[i])) { return subTags[i]; } } return null; }