private List<Bean> getSpecificNodes(NodeList nodeList, Predicate<Node> isASpecificNode){
        List<Bean> beans = Lists.newArrayList();
        for (int i = 0; i < nodeList.getLength(); i++){
            Node item = nodeList.item(i);
            if (item.hasChildNodes()){
                return getSpecificNodes(item.getChildNodes(), isASpecificNode);
            }

            if (isASpecificNode.apply(item)){
                beans.add(new Bean(getAttributesTextByName(item, "bean")));
            }
        }
        return beans;
    }