0

我需要获取 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 文件的所有元素?

4

3 回答 3

1

一棵树有不同的层次。在您的方法中,您只是选择顶层的节点。为了打印所有节点,您需要访问所有子节点。

于 2013-10-27T22:18:56.647 回答
0

我认为你应该使用 jsoup 示例:

Document doc = Jsoup.connect("http://www.marca.com").get();
Elements allNodes = doc.getAllElements()

您可以在这里参考:http: //jsoup.org/

于 2013-10-28T15:39:18.707 回答
0

尝试不同的方法我通过递归调用迭代树的不同子节点来解决问题。

谢谢你的帮助

于 2013-10-28T16:55:32.023 回答