加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 08:25:14 所属栏目:百科 来源:网络整理
导读:实现的功能:用SAX读取contact.xml 文件并将其原样输出 XML文件:contact.xml ?xml version="1.0" encoding="utf-8"?contactListcontact id="001" name="eric"name张三/nameage20/agephone134222223333/phoneemailzhangsan@qq.com/emailqq432221111/qq/conta

实现的功能:用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+">");
	}
}


功能实现的主程序: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);
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读