private boolean containsBeginOfFileTag(Node node, String valueToFind) { if (node instanceof InlineTag) { InlineTag inlineTag = (InlineTag) node; InlineTagName name = inlineTag.getName(); String value = inlineTag.getValue(); if (name == InlineTagName.BEGINOFFILE && value.equals(valueToFind)) { return true; } } if (node instanceof NodeContainer<?> && !(node instanceof Chapter)) { NodeContainer<?> nodeContainer = (NodeContainer<?>) node; for (Node child : nodeContainer.getChildren()) { // recursive call if (containsBeginOfFileTag(child, valueToFind)) { return true; } } } return false; }