【问题标题】:reading html from an inputstream java从输入流java读取html
【发布时间】:2011-05-29 05:36:14
【问题描述】:

我正在使用来自 java servlet 的输入流读取 html 文件。 但是原版和读版的内容格式不同 尽管在 Web 浏览器中显示时它们是相同的。这是两个 html文件的链接 读取输出后 http://www.fileflyer.com/view/gQREGAe 原始输出 http://www.fileflyer.com/view/mWXHVAE 有没有办法在阅读时获取原始html?为什么会这样? 我的java代码如下;

InputStreamReader isr = new InputStreamReader(inputStream);
     BufferedReader br = new BufferedReader(isr);
     String line = null;
     while ( (line = br.readLine()) != null)
     {
      System.out.println(line);
}

任何帮助将不胜感激!

谢谢你, 拉纳。

【问题讨论】:

  • 不同格式是什么意思?
  • html 代码不同。不是浏览器的输出。
  • 你能把代码粘贴到像 paste.org 或 pastebin.com 这样的地方吗?我不愿意下载随机文件;)

标签: java html servlets


【解决方案1】:

另一种格式(extracted.html)显然是由 Microsoft Word 生成的。

<html xmlns:v="urn:schemas-microsoft-com:vml"
      xmlns:o="urn:schemas-microsoft-com:office:office"
      xmlns:w="urn:schemas-microsoft-com:office:word"
      xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
      xmlns="http://www.w3.org/TR/REC-html40">

您的问题更多出在InputStream来源 中,而不是Java 或Servlet 方面。他们肯定不会在没有您干预的情况下随意更改InputStream 的内容。

您似乎将 MS Word 用作 HTML 编辑器,您不应该这样做,它不适合。而是使用 Notepad、Notepad++、Editplus 等基于文本的编辑器进行 HTML 编辑。

【讨论】:

    【解决方案2】:

    我已经看到了这两个 html 文件。提取的.html 显然有更多您似乎不感兴趣的标签/cmets/css 信息。因此,您剩下的唯一选择是使用以下解析器之一并删除您不需要的不必要的节点/属性(或仅提取您需要的内容)

    1. Mozilla html parser
    2. HTML Parser

    【讨论】:

    • 嗨,我在原始 html 代码中添加了一个名为“模板”的属性。但它没有在输出中表示。你知道为什么吗?
    猜你喜欢
    • 1970-01-01
    • 2012-02-26
    • 2014-12-04
    • 2019-07-15
    • 2014-10-03
    • 2011-02-12
    • 2013-06-03
    相关资源
    最近更新 更多