2011-02-28 72 views
3

是否有一個庫可以將任何給定的HTML頁面轉換成一個簡約的統一格式?例如,如果我們呈現stackoverflow主頁,我希望它以最小格式顯示。我希望所有其他網站都被渲染掉。Java HTML規範化器?

有點類似Lynx網絡瀏覽器,但最小的圖形。

+0

您想將您的HTML代碼轉換爲更簡單的HTML代碼,還是希望向用戶展示此「簡約統一格式」?或者你想創建一個圖像? – 2011-02-28 22:44:26

+0

更簡單的html代碼,而不犧牲元素的相對位置。 – KJW 2011-03-01 18:42:27

回答

1

回答你最糟糕的問題:不,我不認爲有這樣一個圖書館。 (至少這是我的「googeling」導致)。

我認爲這樣做的原因是,你想要的是一個非常特殊的需求。

因此,作爲解決問題的解決方案,您可以解析html並以JEditorpane或您正在使用的任何顯示方式顯示它。

我只能建議一種方法,我會這樣做(這是因爲我熟悉xml及其周圍的一切)。

  • 使用XSLT將文檔轉換成一些其他的html文件,導致適合您需求的視圖。

  • 利用現有的HTML解析器圖書館的之一。 (其中大部分是我發現的那種過時(2006)),但他們可能是您的選擇。

這只是一個建議,你可以做到這一點。我確信有成千上萬的其他方式可以做同樣的事情。

+0

是的,這是一個很好的方法。謝謝。 – KJW 2011-07-04 04:42:23

1

我遇到過的最好的工具HTML到Lynx風格的文本是Jericho'sRenderer

它易於使用:

Source source=new Source(new URL(sourceUrlString)); // or new Source("<html>pass in raw html string</html>"); 
    String renderedText=source.getRenderer().toString(); 
    System.out.println("\nSimple rendering of the HTML document:\n"); 
    System.out.println(renderedText); 

(從here

,並在野外(格式錯誤)處理HTML非常好。

此網頁的格式使用傑里科這樣的前幾行:

堆棧交流登錄|職業|聊天 | meta |關於|常見問題

堆棧溢出 *問題 *標籤 *用戶 *徽章 *未答覆 *提問

Java的HTML正規化?

**

有一種能將 任何給定的HTML頁面JS庫,CSS所有 過吧,到簡約統一 格式?例如,如果我們渲染 stackoverflow主頁,我希望它以 以最小格式顯示。我想 所有其他網站被降低。

有點像Lynx網絡瀏覽器,但與 最小的圖形。

java的猞猁鏈接|編輯|標誌問2天 前金正雨593112 89%接受 率你想改變你的 HTML代碼,簡單的HTML代碼,或做 你想顯示這個「簡約 統一格式「給你的用戶?或者做 你想創建一個圖像? - Paŭlo Ebermann昨天更簡單的HTML代碼 而不犧牲相對的元素定位的 。 - 金 鍾佑17小時以前

2回答

要回答你的問題firtst:不,我 don'nt認爲是 這一目的的庫。 (至少這是我的「googeling」導致的) 。

而我認爲這是因爲, ,你想要的是一個非常特殊的 需要。

,以便爲您的問題的解決方案,你可以 解析HTML並顯示它不管你使用的顯示要在一個JEditorPane的 方式或 。

我只能建議一種方法,我會這樣做 (這是因爲我熟悉 xml及其周圍的一切)。

* 

    Use a library to ensure that your html conforms to xhtml: 

http://htmlcleaner.sourceforge.net/release.php

* 

    then either parse the xml with DOM or SAX parsers and display it the 

你想要的方式。

* use xslt to transform the document into some other html document 

導致適合您 需求的看法。

* use one of the available html parser librarys. (The most of which i 
發現其中一種過時的(2006)) ,但他們可能是你的選擇

這只是一個建議,你如何 可以做到這一點。我確定有 成千上萬的其他方式,這將做 同樣的事情。

+0

這是非常接近我想要的,但可以l handle處理ajax – KJW 2011-03-02 12:04:02

+1

不怕,沒有JS。爲了渲染JS,你可以像HTTPUnit那樣加載HTML,或者像Selenium這樣的無頭瀏覽器 - 然後將生成的HTML傳遞給Jericho。 – Joel 2011-03-02 12:45:43