使用SAX读取XML文件的练习--(将读取的XML文件原样输出)

前端之家收集整理的这篇文章主要介绍了使用SAX读取XML文件的练习--(将读取的XML文件原样输出)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

实现的功能:用SAX读取contact.xml 文件并将其原样输出

XML文件:contact.xml

<?xml version="1.0" encoding="utf-8"?>
<contactList>
	<contact id="001" name="eric">
		<name>张三</name>
		<age>20</age>
		<phone>134222223333</phone>
		<email>zhangsan@qq.com</email>
		<qq>432221111</qq>
	</contact>
	<contact id="002" name="jacky">
		<name>eric</name>
		<age>20</age>
		<phone>134222225555</phone>
		<email>lisi@qq.com</email>
		<qq>432222222</qq>
	</contact>
</contactList>

功能实现的功能类(处理程序):MyDefaultHandler2.java

package SAX;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/*
 * SAX处理器程序
 */
public class MyDefaultHandler2 extends DefaultHandler {
	private StringBuffer sb = new StringBuffer();
	public String getContent() {
		
		return sb.toString();
		
	}
	/*
	 * 开始标签
	 */
	@Override
	public void startElement(String uri,String localName,String qName,Attributes attributes) throws SAXException {
		sb.append("<"+qName);
		//判断是否有属性
		if(attributes!=null) {
			for(int i=0 ; i<attributes.getLength();i++) {
				//得到属性名称
				String attrName = attributes.getQName(i);
				//得到属性值
				String attrValue = attributes.getValue(i);
				sb.append(" "+attrName+"=\""+attrValue+"\"");
			}
		}
		sb.append(">");
	}
	/*
	 * 文本内容
	 */
	@Override
	public void characters(char[] ch,int start,int length)
			throws SAXException {
		//得到当前读取的文本内容
		String content = new String(ch,start,length);
		sb.append(content);
	}
	
	/*
	 * 结束标签
	 */
	@Override
	public void endElement(String uri,String qName)
			throws SAXException {
		sb.append("</"+qName+">");
	}
}

@H_404_11@

功能实现的主程序:Demo_sax1.java

package SAX;

import java.io.File;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

/*
 * 读取contact.xml问价,完整的输出文档内容
 */

public class Demo_sax1 {
	public static void main(String[] args) throws Exception {
		//1.创建一个SAXParser
		SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
		//2.读取XML文件
		MyDefaultHandler2 handler = new MyDefaultHandler2();
		parser.parse(new File("./src/contact.xml"),handler);
		String content = handler.getContent();
		System.out.println(content);
	}
}

猜你在找的XML相关文章