一、新建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>

以上就是XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

更多相关文章

  1. Java&Xml教程(三)使用DOM方式修改XML文件内容
  2. Java&Xml教程(七)使用JDOM修改XML文件内容
  3. Java&Xml教程(十)XML作为属性文件使用
  4. xml学习(7) .net 获取xml节点或者属性最大值
  5. 详细介绍XML中的属性学习方法
  6. XML实例教程:nodeName、nodeValue和nodeType属性的详解
  7. XML入门教程-属性声明代码示例
  8. 解析XML和JSON内容的一点技巧的实例代码分享
  9. XML学习(一)元素,属性,读取详解

随机推荐

  1. Android使用gradle生成maven库,上传githu
  2. Android之开发常用颜色
  3. 像写Flutter一样开发Android原生应用
  4. Android 中文API (67) —— BluetoothClass
  5. 使用ImageView 加上 Edittext做出自定义
  6. android和PC(Python)通过USB(adb模式)基于Soc
  7. Android 中文API (68) —— BluetoothClass
  8. Android(安卓)驱动之旅 第五章: 在Android
  9. [Android]-图片JNI(C++\Java)高斯模糊的实
  10. Android(安卓)滑动绘制流程探究 系统是如