我需要获取HTML文件的所有元素,因为我必须在树上表示它们。问题是我只能获得第一个节点,即html节点。
我使用HTMLParser库进行Java编程。
我的代码是:
import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
class Principal
{
public static void main (String[] args) {
try {
Parser parser = new Parser("http://www.marca.com");
NodeList list = parser.parse(null);
for (int i = 0; i < list.size(); i++) {
Node node = list.elementAt(i);
System.out.println(node.getText());
}
} catch (ParserException pe) {
pe.printStackTrace ();
}
}
}
我尝试使用迭代器,但结果是一样的。
执行代码会产生以下结果:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
html xmlns="http://www.w3.org/1999/xhtml"
有谁知道如何获取HTML文件的所有元素?
答案 0 :(得分:1)
树有不同的等级。在您的方法中,您只需选择顶层的节点。要打印所有节点,您需要转到所有子节点。
答案 1 :(得分:0)
我认为你应该使用jsoup 例如:
Document doc = Jsoup.connect("http://www.marca.com").get();
Elements allNodes = doc.getAllElements()
您可以在此处参考:http://jsoup.org/
答案 2 :(得分:0)
尝试不同的方法我通过递归调用来解决问题,以迭代树的不同子项。
感谢您的帮助