jodd-lagarto/src/main/java/jodd/lagarto/dom/LagartoDOMBuilderTagVisitor.java
@Override
	public void end() {
		if (parentNode != rootNode) {

			Node thisNode = parentNode;

			while (thisNode != rootNode) {
				if (domBuilder.config.isImpliedEndTags()) {
					if (implRules.implicitlyCloseTagOnEOF(thisNode.getNodeName())) {
						thisNode = thisNode.getParentNode();
						continue;
					}
				}

				error("Unclosed tag closed: <" + thisNode.getNodeName() + ">");

				thisNode = thisNode.getParentNode();
			}
		}

		// remove whitespaces
		if (domBuilder.config.isIgnoreWhitespacesBetweenTags()) {
			removeLastChildNodeIfEmptyText(parentNode, true);
		}

		// foster
		if (domBuilder.config.isUseFosterRules()) {
			HtmlFosterRules fosterRules = new HtmlFosterRules();
			fosterRules.fixFosterElements(rootNode);
		}

		// elapsed
		rootNode.end();

		if (log.isDebugEnabled()) {
			log.debug("LagartoDom tree created in " + rootNode.getElapsedTime() + " ms");
		}
	}
@Override
	public void end() {
		if (parentNode != rootNode) {

			Node thisNode = parentNode;

			while (thisNode != rootNode) {
				if (domBuilder.config.isImpliedEndTags()) {
					if (implRules.implicitlyCloseTagOnEOF(thisNode.getNodeName())) {
						thisNode = thisNode.getParentNode();
						continue;
					}
				}

				error("Unclosed tag closed: <" + thisNode.getNodeName() + ">");

				thisNode = thisNode.getParentNode();
			}
		}

		// remove whitespaces
		if (domBuilder.config.isIgnoreWhitespacesBetweenTags()) {
			removeLastChildNodeIfEmptyText(parentNode, true);
		}

		// foster
		if (domBuilder.config.isUseFosterRules()) {
			HtmlFosterRules fosterRules = new HtmlFosterRules();
			fosterRules.fixFosterElements(rootNode);
		}

		// elapsed
		rootNode.end();

		if (log.isDebugEnabled()) {
			log.debug("LagartoDom tree created in " + rootNode.getElapsedTime() + " ms");
		}
	}
@ Override public void end ( ) { if ( parentNode != rootNode ) { Node thisNode = parentNode ; while ( thisNode != rootNode ) { if ( domBuilder . config . isImpliedEndTags ( ) ) { if ( implRules . implicitlyCloseTagOnEOF ( thisNode . getNodeName ( ) ) ) { thisNode = thisNode . getParentNode ( ) ; continue ; } } error ( "Unclosed tag closed: <" + thisNode . getNodeName ( ) + ">" ) ; thisNode = thisNode . getParentNode ( ) ; } } // remove whitespaces if ( domBuilder . config . isIgnoreWhitespacesBetweenTags ( ) ) { removeLastChildNodeIfEmptyText ( parentNode , true ) ; } // foster if ( domBuilder . config . isUseFosterRules ( ) ) { HtmlFosterRules fosterRules = new HtmlFosterRules ( ) ; fosterRules . fixFosterElements ( rootNode ) ; } // elapsed rootNode . end ( ) ; if ( log . isDebugEnabled ( ) ) { log . debug ( "LagartoDom tree created in " + rootNode . getElapsedTime ( ) + " ms" ) ; } }
Finishes the tree building. Closes unclosed tags.
Finishes the tree building . Closes unclosed tags .