`

jTidy入门和实践

 
阅读更多

测试html代码:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
.red{
	color:red;
}
</style>

<script>
	$(function(){
		alert("asdf");
	});
</script>

</head>

<body>

<H1>hi,girl</H1>

<br><!-- 缺少结束的 / -->

<input id="username" ><!-- 缺少结束的 / -->

<h1>hi,boy</h1>

<img id="myface" src="\pics\face.png"><!-- 缺少结束的 / -->

<div>
	<div>
		<h1>where is it</h1>
		<!-- 缺少结束div -->
</div>

<!-- 这里是注释 -->

<h2>hi,这是中文</h2>

<p></p>

plz save me

<a href="www.baidu.com\index\news.do"> </a>

<div></div>


</body>
</html>
 


测试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,若是: <br> -> <br/> ; <img src=""> -> <img src=""> ....
		tidy.setXHTML(true);
		
		//是否隐藏注释
		tidy.setHideComments(true); 
		
		//是否br在一行中显示
		tidy.setBreakBeforeBR(true); 
		
		//不知道是啥
		//tidy.setBurstSlides(false); 
		
		//是否删除空的<p></p>
		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);
		
		//移除空元素如:<div></div>
		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-04aug2000r7-dev.zip_ jtidy-r938-sources_JTidy-lizi_jtidy _

    "jtidy_jar"标签表明压缩包中包含的是JTidy的JAR文件,这是一个Java的归档文件,包含了JTidy库的所有类和资源,开发者可以直接引入到他们的Java项目中使用。 "tidy"则是JTidy库的别名,tidy命令行工具也是JTidy的一...

    jtidy-r820

    JTidy是HTML Tidy(一个HTML语法检查器和优雅的打印编排工具)的Java移植,除了本身具有的清除HTML文件难看或错误内容的功能外,还提供了一个DOM接口,程序员可以将JTidy当作一个处理HTML文件的DOM解析器来使用。

    jtidy简单使用

    jtidy简单使用 java jtidy xml html

    JTidy配置手册,将Html页面转化为xml

    JTidy是一款开源的Java库,专门用于清理和格式化HTML文档,同时也支持将HTML转换为XML格式。...通过深入学习和实践,开发者可以更好地应对各种复杂的HTML文档处理任务,为项目提供更加高效和可靠的解决方案。

    jtidy-04aug2000r7-dev.zip

    本文将详细介绍jtidy的功能、原理以及实际应用,以助你更好地理解和运用这一工具。 jtidy,全称为Java Tidy,是Tidy的一个Java版本。Tidy是由Dave Raggett开发的,最初是为了修复和清理HTML源代码而设计的。它能够...

    jtidy-r8-21122004.jar

    jtidy-r8-21122004.jar

    jtidy-r938.zip

    这个库在r938版本中包含了核心的jar文件(jtidy-r938.jar)、源代码(jtidy-r938-sources.zip)以及API文档(javadoc),使得开发者可以方便地查看和理解其内部工作原理。 首先,我们需要在Java项目中引入JTidy的...

    jtidy_jar文件

    JTidy 是HTML Tidy (一个饭HTML语法检查器和优雅的打印编排工具)的Java移植,除了本身具有的清除HTML文件难看或错误内容的功能外,还提供了一个DOM接口,......

    jtidy sources jar包

    jtidy-r7-20052011.104500-sources.jar

    jtidy jar包

    jtidy-r8-20060801,新的

    Java通过DOM+Jtidy结合Mysql实现基于本地的简单的搜索系统

    在本项目中,我们主要利用Java技术,结合DOM解析库和JTidy工具处理HTML数据,以及MySQL数据库来构建一个基于本地的简单搜索系统。以下是详细的知识点解释: 1. **HTML到XML转换**: HTML(HyperText Markup ...

    2jtidy-04aug2000r7-dev.zip_jti_jtidy _zip

    XML的解析是其应用的核心部分,而"2jtidy-04aug2000r7-dev.zip"则是一个专门针对XML处理的工具包,包含了JTI(Java Text Interface)和Jtidy这两个关键组件。 JTI,全称为Java Text Interface,是一个用于处理文本...

    jtidy-r938.jar

    jtidy-r938.jar,需要调用的包,一些office的转换需要使用

    html转换成xml使用的Jtidy类库

    html转换成xml使用的tidy类库,很好用也很简单,

    jsoup和jtidy 对html操作,将不规范的html转换为xhtml

    在这种情况下,jsoup和Jtidy这两个Java库就显得尤为重要,它们可以帮助我们将不规范的HTML转换为更标准的XHTML(可扩展超文本标记语言)。 首先,让我们深入了解jsoup。jsoup是一款强大的Java库,设计用于处理现实...

    Jtidy API CHM

    JTidy 是 HTML Tidy 用Java语言实现的版本,提供了一个HTML的语法检查器和很好的打印功能。JTidy可以用来清除格式不好和不对的 HTML。此外,JTidy提供了对整个HTML的DOM分析器。程序员可以将JTidy当作一个处理HTML...

    Jtidy 将HTML转化成XML

    利用Jtidy工具, 将HTML转化成XML,这里给出简单的转换方法。

    jtidy 用java语言写的 tidy

    用java语言实现的tidy,可以对html文档进行规范化处理,得到符合标准的xhtml文档。

    Java理论与实践:用XQuery进行屏幕搜集

    【Java理论与实践:用XQuery进行屏幕搜集】这篇文章探讨了如何利用XQuery技术解决智能手机在有限屏幕空间上浏览Web页面的问题。XQuery是一种W3C标准,主要用于从XML文档中提取信息,但它也能应用于HTML的屏幕搜集和...

    html文件解析器-源码

    总的来说,HTML文件解析器是理解和操作HTML文档的关键工具,而JTidy作为其中的一员,提供了丰富的功能和学习价值。通过研究其源码,我们可以深入理解HTML解析的内部机制,提升对Web技术的理解,为开发更高效、更健壮...

Global site tag (gtag.js) - Google Analytics