2010-12-22 166 views
2

我正在使用java servlet中的inputstream讀取html文件。 但是原始內容和閱讀內容的格式不同 ,但在Web瀏覽器中顯示時它們是相同的。這些都是讀書輸出 http://www.fileflyer.com/view/gQREGAe 原單輸出 http://www.fileflyer.com/view/mWXHVAE 有沒有辦法讀取時得到原始的HTML後的HTML文件 兩個 鏈接?爲什麼發生這種情況?我的java代碼如下: ;從輸入流中讀取html java

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

任何幫助將不勝感激!!

謝謝 rana。

+0

你是什麼意思的不同格式? – 2010-12-22 05:38:26

+0

html代碼是不同的。而不是瀏覽器的輸出。 – rana123 2010-12-22 05:49:35

回答

3

顯然是由Microsoft Word生成的格式不同的文件(名稱爲extracted.html)。

<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編輯器,你不應該這樣做,它不適用於此。而是使用基於文本的編輯器,如記事本,記事本++,Editplus等進行HTML編輯。

0

我看到了這兩個html文件。 extracted.html顯然有更多的標籤/評論/ css信息,你似乎沒有興趣。所以,你只剩下唯一的選擇是使用下面的解析器1,並刪除不必要的節點/屬性,你並不需要(或只提取你所需要的)

  1. Mozilla html parser
  2. HTML Parser