Posible analizar un documento HTML y construir un árbol DOM (java)

¿Es posible y qué herramientas podrían usarse para analizar un documento html como una cadena o desde un archivo y luego construir un árbol DOM para que un desarrollador pueda recorrer el árbol a través de alguna API?

Por ejemplo:

DomRoot = parse("myhtml.html");

for (tags : DomRoot) {
}

Nota: este es un documento HTML no XHtml.

Respuestas a la pregunta(5)

Su respuesta a la pregunta