411 REFERENCE · Wikibooks
Apache Ant/Cleaning up HTML
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Motivation
We want to clean up HTML that is not well formed. We will use the Apache Tika tools to convert dirty HTML to well-formed XHTML.
Sample Ant File
<project name="tika tests" default="extract-xhtml-from-html">
<description>Sample invocations of Apache Tika</description>
<property name="lib.dir" value="../lib"/>
<property name="input-dirty-html-file" value="input-dirty.html"/>
<property name="output-clean-xhtml-file" value="output-clean.xhtml"/>
<target name="extract-xhtml-from-html">
<echo message="Cleaning up dirty HTML file: ${input-dirty-html-file} to ${output-clean-xhtml-file}"/>
<java jar="${lib.dir}/tika-app-1.3.jar" fork="true" failonerror="true"
maxmemory="128m" input="${input-dirty-html-file}" output="${output-clean-xhtml-file}">
<arg value="-x" />
</java>
</target>
</project>
Sample Input
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dirty HTML</title>
</head>
<body>
<p><b>test</b></p>
<p><b>test<b></p>
<p>test<br/>test</p>
<p>test<br>test<br>test</p>
<p>This is <B>bold, <I>bold italic, </b>italic, </i>normal text</p>
</body>
</html>
Sample Output
<?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Content-Encoding" content="ISO-8859-1"/>
<meta name="Content-Type" content="application/xhtml+xml"/>
<meta name="dc:title" content="Dirty HTML"/>
<title>Dirty HTML</title>
</head>
<body>
<p>test</p>
<p>test</p>
<p>test
test</p>
<p>test
test
test</p>
<p>This is bold, bold italic, italic, normal text</p>
</body></html>