jTidy入门和实践

阅读更多

测试html代码:

 





Insert title here








hi,girl


hi,boy

where is it

hi,这是中文

plz save me
 


测试Java源码:

 

package com.mtea.demo;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;

import org.w3c.dom.Document;
import org.w3c.tidy.Node;
import org.w3c.tidy.Tidy;
import org.w3c.tidy.TidyMessage;
import org.w3c.tidy.TidyMessageListener;

public class DemoTest1 {

	public static void main(String[] args) throws Exception {
		
		//每次需要进行html代码格式化和处理都new出来
		Tidy tidy = new Tidy();

		//测试资源,与当前类同包
		InputStream is = DemoTest1.class.getResourceAsStream("not-pretty.html");
		
		/*
		 * 配置
		 */
		
		//打印配置
		//tidy.getConfiguration().printConfigOptions(new PrintWriter(System.out), true);

		//读取配置文件
		//tidy.setConfigurationFromFile("config.txt");
		//tidy.setConfigurationFromProps(null);
		
		
		//是否缩进
		tidy.setIndentContent(true); 
		
		//设置输出错误与警告信息
        StringWriter stringWriter = new StringWriter();
        PrintWriter errorWriter = new PrintWriter(stringWriter);
        tidy.setErrout(errorWriter);
		
		//是否XHTML,若是: 
->
; -> .... tidy.setXHTML(true); //是否隐藏注释 tidy.setHideComments(true); //是否br在一行中显示 tidy.setBreakBeforeBR(true); //不知道是啥 //tidy.setBurstSlides(false); //是否删除空的

tidy.setDropEmptyParas(false); //是否用p标签包括文字,如测试html的: plz save me tidy.setEncloseBlockText(false); //url中的 \ -> / tidy.setFixBackslash(true); //属性也换行,真疯狂 tidy.setIndentAttributes(false); //不知道是啥 //tidy.setJoinStyles(false); //当有信息则回调,可以获得更多信息 tidy.setMessageListener(new TidyMessageListener(){ @Override public void messageReceived(TidyMessage message) { System.out.println("TidyMessageListener info : " + message.getMessage()); } }); //有中文,没效果 tidy.setOutputEncoding("utf-8"); //是否只有body内容 tidy.setPrintBodyOnly(false); //移除空元素如:
tidy.setTrimEmptyElements(true); //是否节点结束后另起一行 tidy.setSmartIndent(true); //是否用em替代i,strong替代b tidy.setLogicalEmphasis(true); //是否把大小的标记转换成小写 tidy.setUpperCaseTags(false); //一行有多长 tidy.setWraplen(1000); //正确显示中文 tidy.setInputEncoding("utf-8"); /* * 执行处理 */ //2次输出 Node node = tidy.parse(is, System.out); //System.out.println("\n\n\nstringWriter.toString():\n"+stringWriter.toString()); //格式化打印 ByteArrayOutputStream out = new ByteArrayOutputStream(); Document doc = tidy.parseDOM(is, null); tidy.pprint(doc, out); String tidied = new String(out.toByteArray()); System.out.println("\n\n tidied: \n" + tidied); //TODO 不要忘记关闭流 } } //过滤器例子: http://jtidy.sourceforge.net/multiproject/jtidyservlet/filter.html

你可能感兴趣的:(jTidy入门和实践)