Post by vkI would like to be able to read (parse) an html file into my Java
program. Once I'm able to do this, I need to be able to analyse the
html code.
<sscce>
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.swing.*;
import java.net.*;
import java.util.*;
public class ParseHTML extends JApplet {
JTree tree;
public void init() {
Vector v = new Vector();
URL index = getDocumentBase();
try {
Document doc = DocumentBuilderFactory.
newInstance().
newDocumentBuilder().
parse((index.toURI()).
toString());
tree = new JTree();
Element root = doc.getDocumentElement();
NodeList children = root.getChildNodes();
processElements( children, v );
} catch(Exception e) {
v.add(e.getMessage());
}
tree = new JTree(v);
for (int ii=0; ii< tree.getRowCount(); ii++) {
tree.expandRow(ii);
}
getContentPane().add( new JScrollPane(tree) );
}
public void processElements(
NodeList list,
Vector v) {
for (int ii=0; ii< list.getLength(); ii++) {
v.add( list.item(ii).toString() );
if ( list.item(ii) instanceof Element ) {
Element e = (Element)list.item(ii);
NodeList children = e.getChildNodes();
Vector v1 = new Vector();
v.add( v1 );
processElements( children, v1 );
}
}
}
}
</sscce>
<**html>
<!DOCTYPE HTML>
<HTML>
<HEAD>
<title>Parse HTML</title>
</HEAD>
<BODY>
<h1>Example of parsing (valid) HTML</h1>
<p>The applet in this web page loads the web page and attempts to
parse it into a org.w3c.dom.Document object.</p>
<p>The documents parsed must be well formed, which is
uncommon for most web pages.</p>
<APPLET
CODE="ParseHTML.class"
CODEBASE="."
WIDTH="600" HEIGHT="600">
</APPLET>
</BODY>
</HTML>
</**html>
HTH
Andrew T.