【问题标题】:Java HTML normalizer?Java HTML规范化器?
【发布时间】:2011-02-28 06:55:37
【问题描述】:

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

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

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

【问题讨论】:

  • 您想将您的 HTML 代码转换为更简单的 HTML 代码,还是想向您的用户展示这种“简约的统一格式”?还是要创建图像?
  • 更简单的 html 代码而不牺牲元素的相对定位。

标签: java lynx


【解决方案1】:

我遇到的将 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 以这种方式格式化的页面的前几行:

堆栈交换登录 |职业生涯 |聊天 |元 |关于 |常见问题

堆栈溢出 * 问题 * 标签 * 用户 * 徽章 * 未答复 *

Java HTML 规范化器?

**

是否有可以转换的库 任何给定的带有 JS、CSS 的 HTML 页面 穿上它,穿上简约的制服 格式?

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

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

java lynx link|edit|flag 问了 2 天 前 金钟宇 593112 89% 接受 你想改变你的 HTML 代码到更简单的 HTML 代码,或者做 你想展示这个“极简主义 统一格式”给你的用户?或者做 你想创建一个图像? ——帕洛 Ebermann 昨天更简单的 html 代码 不牺牲亲人 元素的定位。 – 金 钟佑 16 小时前

2 个答案

回答你的第一个问题:不,我 不要认为有图书馆 那个目的。 (至少这是 我的“谷歌搜索”导致)。

我认为原因是, 你想要的是一个非常特别的 需要。

因此,作为您的问题的解决方案,您 可以解析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)) 但它们可能是您的选择。

这只是一个建议 能做到这。我确定有 数以千计的其他方法可以做到 同样的事情。

【讨论】:

  • 这非常接近我想要的,但可以 lynx 处理 ajax
  • 怕不是,没有JS。要渲染 JS,您可以在 HTTPUnit 或 Selenium 等无头浏览器中加载 HTML,然后将生成的 HTML 传递给 Jericho。
【解决方案2】:

回答您的第一个问题:不。我认为没有为此目的的图书馆。 (至少这是我的“谷歌搜索”结果)。

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

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

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

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

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

这只是您如何做到这一点的一个建议。我敢肯定还有成千上万的其他方法可以做同样的事情。

【讨论】:

    猜你喜欢
    • 2013-09-03
    • 2019-10-04
    • 2017-06-30
    • 2012-05-22
    • 2011-03-22
    • 2020-02-12
    • 1970-01-01
    • 2014-10-13
    相关资源
    最近更新 更多