Mit dem NekoHTML-Parser ist es möglich, HTML-Code wie er in der Praxis auftritt, zu parsen. Das Maven-Artifakt lautet: {{{ <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.15</version> </dependency> }}} Das Parsen geht vonstatten, indem ein Parser erzeugt wird: {{{ DOMParser parser = new DOMParser(); parser.setFeature("http://xml.org/sax/features/namespaces", false); getParser().parse(new InputSource(inputStream)); Document document = getParser().getDocument(); }}} Falls man keine Namespace-basierte Analyse vornehmen möchte, ist das Ausschalten der XML-Namespace-Handling wichtig. Sonst werden im HTML enthaltene Namespace-Notationen verwendet, in der Folge müssten diese bei XPath-Ausdrücken ebenfalls angegeben werden. Das ist prinziell möglich, aber umständlich und meist unnötig. {{{ XPath xpath = XPathFactory.newInstance().newXPath(); Node node = (Node)xpath.evaluate("//FORM", document, XPathConstants.NODE); }}} Die HTML-Tags sind laut Spezifikation Upper-Case, die Attribute Lower-Case.