我正在构建一个使用嵌入式浏览器(JBrowser)来运行网页的应用程序。在访问过的页面中,我想要提取或获取标记<table>
中的所有元素。我曾尝试使用java dom来完成任务。这是代码:
public static void getAllElement(Node node) {
Element e=(Element) node;
NodeList row = e.getElementsByTagName("tr");
for (int i = 0; i < row.getLength(); i++) {
if(row.item(i).getNodeType() == Node.ELEMENT_NODE){
Element el=(Element) row.item(i);
NodeList col=el.getElementsByTagName("td");
for (int j = 0; j < col.getLength(); j++){
if(col.item(j).getNodeType() == Node.ELEMENT_NODE){
System.out.print("row " + i + " " + col.item(j).getTextContent().trim() + ", ");
System.out.println("");
}
}
}
}
}
这是调用上述方法的代码:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
org.w3c.dom.Document doc = browser.getDocument(); //document dom from the current page
Element rootNode = doc.getDocumentElement();
NodeList tableList = rootNode.getElementsByTagName("table");
for (int i = 0; i < tableList.getLength(); i++) {
Element element = (Element) tableList.item(i);
if (statement) { //element has specific attribute
getAllElement(element);
}
我将此文件作为输入网址放在localhost中。每次加载时,空指针总是不同的。
档案:http://www.uploadmb.com/dw.php?id=1372868778
我不知道为什么会出现这个问题。每次加载页面时,JBrowser是否可能总是构建不同的文档dom?
我以前很抱歉,我试着解释一下。