XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
来源:互联网 发布:spss mac版 pc6 编辑:程序博客网 时间:2024/06/06 02:24
一、新建Demo2类:
import java.io.File;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;/** * 读取contact.xml文件,完整输出文档内容 * @author APPle * */public class Demo2 {public static void main(String[] args)throws Exception {//1.创建SAXParserSAXParser 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);}}
二、建立自定义MyDefaulthander2
import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;/** * SAX处理器程序 * @author APPle */public class MyDefaultHandler2 extends DefaultHandler {//存储xml文档信息private StringBuffer sb = new StringBuffer();//获取xml信息public String getContent(){return sb.toString();}/** * 开始标签 */@Overridepublic 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++){//int getLength() 返回此列表中的属性个数。 //得到属性名称 id="001"String attrName = attributes.getQName(i);//String getQName(int index) 通过索引查找属性的 XML 限定(前缀)名。 //得到属性值String attrValue = attributes.getValue(i);//String getValue(int index) 通过索引查找属性的值。 sb.append(" "+attrName+"=\""+attrValue+"\"");}}sb.append(">");}/** * 文本内容 */@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {//得到当前读取的文本String content = new String(ch,start,length);sb.append(content);}/** * 结束标签 */@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {sb.append("</"+qName+">");}}打印输出结果:
<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>
0 0
- XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
- XML解析之sax解析案例(二)使用sax解析把 xml文档封装成对象
- XML解析之SAX解析技术案例
- Java解析XML文档SAX入门案例
- xml解析之SAX解析xml文件
- sax解析xml案例
- sax解析xml案例
- sax解析xml文件(一)
- Java解析xml文档之SAX解析
- XML文档解析之SAX解析
- sax解析案例(javabean封装xml文档数据)
- XML解析(一),SAX解析XML
- SAX解析XML文档
- SAX解析xml文档
- SAX解析XML文档
- SAX解析xml文档
- SAX解析xml文档
- SAX解析XML文档
- 第14周-项目2-两个成员的类模板(1)
- 关于Class.getResource和ClassLoader.getResource的路径问题
- LeakCanary使用
- 面试题
- 如何让多个显示器显示不同屏幕
- XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
- Java基础回顾 : 对象序列化和反序列化
- 面试
- 断点续传
- HttpServletRequest
- CXF Webservice nonSpring
- github 上Android相关应用的链接学习
- python 2.7.11 + windows 10 连接 mysql学习记录
- 触发checkbox的click事件时遇到的问题