Java HTML规范化程序?

时间:2011-02-28 06:55:37

标签: java lynx

是否有一个库可以将任何给定的HTML页面用JS,CSS转换成简约的统一格式?

例如,如果我们渲染stackoverflow主页,我希望它以最小格式显示。我想要渲染所有其他网站。

有点像Lynx网络浏览器,但图形很少。

2 个答案:

答案 0 :(得分:2)

我遇到的HTML到Lynx样式文本的最佳工具是Jericho's Renderer

它易于使用:

    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。

这是使用Jericho以这种方式格式化此页面的前几行:

  

Stack Exchange登录|职业生涯|聊   | meta |关于|常见问题

     

Stack Overflow       *问题       *标签       *用户       *徽章       *未答复       *提问

     

Java HTML规范化程序?

     

**

     

是否有可以转换的库   任何给定的HTML页面都有JS,CSS全部   在它上面,成为一个简约的制服   格式?

     

例如,如果我们渲染   stackoverflow主页,我想要它   以最小格式显示。我想要   所有其他要渲染的网站。

     

有点像Lynx网页浏览器,但有   最小的图形。

     

java lynx链接|编辑|标志问了2天   之前Kim Jong Woo 593112 89%接受   你想改变自己吗?   HTML代码更简单的HTML代码,或做   你想表现出这种“简约   统一格式“给你的用户?或者做   你想创建一个图像? - 保罗   Ebermann昨天更简单的HTML代码   没有牺牲亲戚   元素的定位。 - 金   Jong Woo 16小时前

     

2答案

     

回答你最热的问题:不。我   别以为有图书馆   那个目的。 (至少这是什么   我的“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))   但它们可能是你的选择。

     

这只是你的一个建议   能做到这。我确定有   成千上万的其他方式   同样的事情。

答案 1 :(得分:1)

回答你最热的问题:不。我不认为有一个图书馆可以达到这个目的。 (至少这是我的“googeling”导致的)。

我认为这样做的原因是,你想要的是一种非常特殊的需求。

因此,作为您的问题的解决方案,您可以解析html并以您想要的方式在JEditorpane或您用于显示的任何内容中显示它。

我只能建议一种方法(这是因为我熟悉xml及其周围的一切)。

  • 使用xslt将文档转换为其他html文档,从而生成符合您需求的视图。

  • 使用一个可用的html解析器库。 (我发现其中大部分过时(2006))但它们可能是你的选择。

这只是你可以做到的一个建议。我确信还有成千上万的其他方法可以做同样的事情。