public void startElement(String uri, String localName, String qName,
				Attributes atts) throws SAXException {
			TagAction ta = TAG_ACTIONS.get(localName);
			if (ta != null) {
				ta.beforeStart(this, localName);
			}
			try {
				if (inIgnorableElement == 0) {
					/***************************************/
					HtmlElement parent = html;
					int depth = 1;
					if(parent != null){
						stack.add(parent);
						depth = parent.getDepth()+1;
					}
					html = new HtmlElement(depth);
					HtmlElement latestFoundParent = getLatestFoundParent();
					if(latestFoundParent!=null && latestFoundParent.isInclude()){
						if(latestFoundParent.getFoundInChildDepth() - html.getDepth()<=TOLERATE_DEPTH){
							html.setInclude();
							html.setFoundInChildDepth(latestFoundParent.getFoundInChildDepth());
						}
					}
					/***************************************/
					html.append('<');
					html.append(qName);
//					if (!ignoreAttrs) {
						final int numAtts = atts.getLength();
						for (int i = 0; i < numAtts; i++) {
							final String attr = atts.getQName(i);
							final String value = atts.getValue(i);
							html.append(' ');
							html.append(attr);
							html.append("=\"");
							html.append(xmlEncode(value));
							html.append("\"");
						}
//					}
					html.append('>');
				}
			} finally {
				if (ta != null) {
					ta.afterStart(this, localName);
				}
			}
		}