⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saxcounter.java

📁 本套光盘提供了本书各章实例的所需的部分源程序文件以及数据库文件。读者 需要使用JDK 1.4(必需)版
💻 JAVA
字号:
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.util.*;
import java.io.*; 

public class SAXCounter extends DefaultHandler {
private Hashtable tags; //这个Hashtable用来记录tag出现的次数
// 处理文档前的工作
public void startDocument() throws SAXException {
tags = new Hashtable();//初始化Hashtable
}
//对每一个开始元属进行处理
public void startElement(String namespaceURI, String localName,String rawName, Attributes atts)
throws SAXException
{
		String key = localName;
	Object value = tags.get(key);
	if (value == null) {
	// 如果是新碰到的标签,这在Hastable中添加一条记录
	tags.put(key, new Integer(1));
} else {
	// 如果以前碰到过,得到其计数值,并加1
	int count = ((Integer)value).intValue();
	count++;
	tags.put(key, new Integer(count));
}
}
//解析完成后的统计工作
public void endDocument() throws SAXException {
	Enumeration e = tags.keys();
while (e.hasMoreElements()) {
	String tag = (String)e.nextElement();
	int count = ((Integer)tags.get(tag)).intValue();
	System.out.println("Tag <" + tag + "> occurs " + count + " times");
}
}
//程序入口,用来完成解析工作
static public void main(String[] args) {
		String filename = null;
	boolean validation = false;
	filename="links.xml";
	SAXParserFactory spf = SAXParserFactory.newInstance();
	XMLReader xmlReader = null;
	SAXParser saxParser=null;
try {
	// 创建一个解析器SAXParser对象
	saxParser = spf.newSAXParser();
	// 得到SAXParser中封装的SAX XMLReader
	xmlReader = saxParser.getXMLReader();
} catch (Exception ex) {
	System.err.println(ex);
	System.exit(1);
}
try {
//使用指定的ContentHandler,解析给XML文件,这儿要注意的是,为了程序的简单起见,这儿将
	//主程序和ContentHandler放在了一起。实际上main方法中所作的所有事情,都与ContentHandler无关。
System.out.println("test");
	xmlReader.parse("new File(filename)", new SAXCounter() );
} 
catch (SAXException se) {
	System.err.println(se.getMessage());
	System.exit(1);
} catch (IOException ioe) {
	System.err.println(ioe);
	System.exit(1);
}

}
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -