簡體   English   中英

在Java中使用HTMLParser獲取所有節點

[英]Get all nodes with HTMLParser in java

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

一棵樹有不同的層次。 在您的方法中,您只是選擇頂級節點。 為了打印所有節點,您需要轉到所有子節點。

我認為您應該使用jsoup示例:

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

您可以在這里參考: http : //jsoup.org/

嘗試不同的方法,我通過遞歸調用來迭代樹的不同孩子,從而解決了這個問題。

謝謝你的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM