2011-02-28 74 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