JTidy

在做中间件平台的时候,其中有一步就是将html转化成xhtml,这部分由lj负责,于是乎,跑去问了问lj,得知她采用的是JTidy的一个jar文件,于是在网上搜了一下,稍作修改,完成功能是,输入文件为html,输出文件为xhtml.

具体实现如下:

(1)构建路径,引入相应的jar文件jtidy-r938.jar

(2)代码如下:

 package beans;
 import java.io.*;
 import java.text.*;
 import java.util.*;
 import java.net.*; 
import org.w3c.tidy.Configuration;
import org.w3c.tidy.Tidy;

 public class test
 { 
    public static void main(String args[])
    {         
           testt = newtest();             
           t.doTidy("c:\\hopetest\\b.html");//转化开始            
    }   
  public void doTidy(Stringf_in)
    {        
        BufferedInputStream sourceIn; //输入流
        ByteArrayOutputStream tidyOutStream; //输出流
        try
        {          
            Reader reader;  
            
            FileInputStream  fis  =  new   FileInputStream(f_in);//读文件
            ByteArrayOutputStream  bos  =  new  ByteArrayOutputStream();  
            int  ch;  
            while((ch=fis.read())!=-1)  
            {  
                    bos.write(ch);  
            }  
            fis.close();  
            byte[]  bs  =  bos.toByteArray();  
            bos.close();  
            String hope_gb2312=new String(bs,"GB2312");//注意,默认是GB2312,所以这里先转化成GB2312然后再转化成其他的。            
            byte[] hope_b=hope_gb2312.getBytes();
            String basil=new String(hope_b,"utf-8");//将GB2312转化成UTF-8             
            byte[]basil_b=basil.getBytes();           
            ByteArrayInputStream stream = newByteArrayInputStream(basil.getBytes());
            tidyOutStream = new ByteArrayOutputStream();
            Tidy tidy = new Tidy();
            tidy.setInputEncoding("UTF-8");
            tidy.setQuiet(true);                   
            tidy.setOutputEncoding("UTF-8");          
            tidy.setShowWarnings(false); //不显示警告信息
            tidy.setIndentContent(true);//
            tidy.setSmartIndent(true);
            tidy.setIndentAttributes(false);
            tidy.setWraplen(1024); //多长换行
            //输出为xhtml
            tidy.setXHTML(true);
             tidy.setErrout(newPrintWriter(System.out));
            tidy.parse(stream, tidyOutStream);
            DataOutputStream  to=new  DataOutputStream(new  FileOutputStream("C:\\hopetest\\bb.xhtml"));  //将生成的xhtml写入 
            tidyOutStream.writeTo(to);
            System.out.println(tidyOutStream.toString());

        }
        catch ( Exception ex )
        {
            System.out.println( ex.toString());
            ex.printStackTrace();
        }
    } 

 } 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值