先知cd——熱愛生活是一切藝術的開始
寫下來的都是資源,分享給互聯網~~均屬原創隨筆。 轉載引用請注明作者changedi。 喜歡應用研究,熱愛編程,歡迎交流。
今天看了一下JTidy的使用,目的就是為了格式化一個不標準的html到標準的xhtml。
JTidy是一個用java寫的HTML語法檢查器,用JTidy可以檢查并修正語法不正確的html,同時還可以對html的DOM進行分析。Xhtml和html有很多不同,其中幾個主要的區別是:
1. XHTML元素必須被正確的嵌套。
2. XHTML元素必須被關閉。
3. 標簽名必須用小寫字幕。
4. XHTML文檔必須有根元素。
想想這些限制也不無道理,這樣的限制可以將html格式化為格式嚴謹的xml。
JTidy的使用也非常簡單,短短的幾行代碼就可以實現從原html到格式化好的xhtml:
其中有幾個問題需要說明一下。理論上,在定義了tidy對象后,調用tidy.parse(in,out)或者tidy.parseDOM(in,out)就可以完成對輸入的格式化,將其輸出到輸出流上。Parse返回一個Node,而parseDOM返回一個Document。如果直接用InputStream和OutputStream,那么對于編碼的控制上,一般只能在tidy中控制了,而Tidy的內置編碼中,簡體中文沒有設置。用起來不方便。如何實現中文頁面輸入,中文頁面產出是一個問題,網上提出了一種解決方法,通過利用生成一個中間UTF-8文件,在將其轉到輸出流上,可以完成中文的輸入。另一種實現就是利用最新的JTidy實現了parse(reader,writer)方法。因為支持reader和writer,所以可以像上面的代碼一樣,在包裝輸入流和輸出流的時候,進行編碼的設定。這樣可以利用很短的代碼完成中文亂碼問題的解決,同時在效率上也要高于生成中間文件的方法。
posted on 2011-04-19 21:33 changedi 閱讀(1972) 評論(0) 編輯 收藏 所屬分類: Java技術
Powered by: BlogJava Copyright © changedi