public static List<DomElement> findAllDirectChildrenAndSelect(String html, String selector){
		Matcher matcher = allTagFindPattern.matcher(html);
		int sequenceIndex = 0;
		Vector<Tag> tags = new Vector<Tag>();
		while(matcher.find(sequenceIndex)){
			Tag tag = new Tag();
			tag.setTag(matcher.group(0));
			tag.setTagName(matcher.group(2));
			tag.setEnd((matcher.group(1)!=null&&!matcher.group(1).equals("")));
			tag.setTagEndIndex(matcher.end(0));
			tags.add(tag);
			sequenceIndex = matcher.end(0);
		}
		List<Tag> children = new ArrayList<Tag>();
		Stack<Tag> stack = new Stack<Tag>();
		for(int i = tags.size()-1; i >= 0; i--){
			Tag tag = tags.get(i);
			//System.out.println(tag.getTagName()+"\t"+i);
			if(tag.isEnd()){
				stack.push(tag);
			}else{
				if(stack.isEmpty()){
					children.add(0, tag);
				}else{
					if(stack.peek().getTagName().equals(tag.getTagName())&&stack.peek().isEnd()){
						stack.pop();
						if(stack.size()==0){
							children.add(0, tag);
						}
					}
					
				}
			}
		}
		
		return singleTagSelector(selector, children, html);
	}