JTidy將html轉換成xhtml

<p>目前工做中在開發一個wap端的項目。雖然如今wap太老了。。沒辦法工做嘛。</p> <p>不過仍是遇到了不少問題。 因爲wap端是用xhtml mp來開發,相對於html而言。 更佳規範更佳嚴謹。</p> <p>上週遇到一個問題。 有一些數據是取數據庫裏的 clob字段。可是clob字段儲存的是由word 轉換成html的內容 。</p> <p>裏面的不管是標籤仍是樣式 都不符合xhtml的標準。致使取出來的時候 根本前端根本顯示不了。</p> <p>週末在家,谷歌各類尋找 找到了 JTidy&#160; html 解析器。帶有將html轉成xhtml的功能,並且配置簡單,功能強大。</p> <p>應該能夠有效的解決個人問題。</p> <p>另外經過這段代碼的編碼,發現個人I/O學的渣如狗啊!!!媽的 過一陣得惡補啊!</p> <p><a href="http://sourceforge.net/projects/jtidy/">Jtidy 源碼和jar包地址</a></p> <p>下面附個人示例代碼:</p>html

<!-- lang: java -->
public String parseXhtml(String f_in){

	  ByteArrayInputStream stream = new ByteArrayInputStream(f_in.getBytes());
	  
	  ByteArrayOutputStream  tidyOutStream = new ByteArrayOutputStream();
	  //實例化Tidy對象
      Tidy tidy = new Tidy();
      //設置輸入
      tidy.setInputEncoding("gb2312");
      //若是是true  不輸出註釋,警告和錯誤信息
      tidy.setQuiet(true);
      //設置輸出
      tidy.setOutputEncoding("gb2312");
    //不顯示警告信息
      tidy.setShowWarnings(false);
      //縮進適當的標籤內容。
      tidy.setIndentContent(true);
      //內容縮進
      tidy.setSmartIndent(true);
      tidy.setIndentAttributes(false);
      //只輸出body內部的內容
      tidy.setPrintBodyOnly(true);
      //多長換行
      tidy.setWraplen(1024);
      //輸出爲xhtml
      tidy.setXHTML(true);
      //去掉沒用的標籤
      tidy.setMakeClean(true);
      //清洗word2000的內容
      tidy.setWord2000(true);
      //設置錯誤輸出信息
      tidy.setErrout(new PrintWriter(System.out));
      tidy.parse(stream, tidyOutStream);
      return tidyOutStream.toString();
}

下面在網上看到的一個網友兄弟發的博客內容列舉了一些比較 經常使用的配置 (還有一大堆沒列出來的, 附件裏面有官網給出的配置含義,能夠下載來參考 ):前端

add-xml-decl:是否輸出「<?xml ... ?>」 declaration

enclose-text:是否將全部<p>標籤閉合 

enclose-block-text:給全部文本加上<p>標籤,使其閉合

show-errors:是否輸出錯誤 show-warnings:是否輸出警告 quote-ampersand:是否將&輸   出爲&amp;

quote-marks:是否將「輸出爲&quot; quote-nbsp:是否將空格輸出爲&nbsp;

indent:是否要縮進:block-level tags indent-spaces:每次縮進的空格數

wrap:每行最多字符數,超過則自動換行,若是爲0則不自動換行

char-encoding:字符編碼,相似的還有output-encoding、input-encoding

literal-attributes:是否保持attribute中的空白字符不變 force-output:遇到錯誤是否繼續輸出

numeric-entities:是否將字符輸出爲HTML字符實體(如&lt;、&gt;) doctype:是否輸出DOCTYPE

tidy-mark:是否要輸出Jtidy的<meta>標籤 drop-font-tags:是否去掉<font>、<center>標籤

clean:是否要清除掉多餘的標籤,這對處理從MS Word中複製到Html中的內容特別有效

Tidy裏面這麼多的配置屬性,要是用戶不當心設了一些互相矛盾的配置怎麼辦? Tidy會自動將低層次的配置調整以知足高層次配置的要求。java

附博客地址數據庫

相關文章
相關標籤/搜索