XML解析:SAX解析
来源:互联网 发布:jdk 安装 linux 编辑:程序博客网 时间:2024/05/01 22:05
package hf.firstclass.a_SAX;import java.io.File;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;/** * 将XML标签信息原样打印到控制台 * @author LZK * */ //SAX解析主出程序public class TestSAX { public static void main(String[] args) throws Exception { //1.得到解析器工厂 SAXParserFactory factory=SAXParserFactory.newInstance(); //2.得到解析器 SAXParser parser=factory.newSAXParser(); //3.解析XML文件 //建立一个处理器 MyDefaultHandler2 handler = new MyDefaultHandler2(); //解析文件 parser.parse(new File("./src/contact.xml"), handler); String content=handler.getContent(); //在控制台上打印出内容 System.out.println(content); }}package hf.firstclass.a_SAX;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;//SAX处理器程序public class MyDefaultHandler2 extends DefaultHandler{ //建立一个容器,用于存储数据 private StringBuilder sb=new StringBuilder(); //提供一个方法,将容器内容返回出去 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+"\""); } } //实现的效果就像这样 <contact id="001" hobby="eat"> sb.append(">"); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { //添加结束标签 sb.append("</"+qName+">"); } @Override public void characters(char[] ch, int start, int length) throws SAXException { //添加文本内容 String content=new String(ch,start,length); sb.append(content); }}源XML文件<?xml version="1.0" encoding="utf-8"?><contact-list > <contact id="001" hobby="eat"> <name>张三</name> <gender>男</gender> <age>22</age> <phone>17728394033</phone> <email>1014420122@qq.com</email> <address>130号</address> </contact> <contact id="002" hobby="drink"> <name>李四</name> <gender>女</gender> <age>23</age> <phone>13721102938</phone> <email>2971821987@qq.com</email> <address>131号</address> </contact></contact-list>
0 0
- XML解析(SAX解析)
- XML解析:SAX解析
- [XML] SAX解析XML
- 【XML】SAX解析XML
- Study SAX《SAX解析XML》
- XML解析技术-SAX解析
- XML解析之SAX解析
- XML解析之SAX解析
- XML解析之SAX解析
- XML解析之SAX解析
- XML解析之SAX解析
- XML解析:一、SAX解析
- XML解析之 SAX解析
- XML解析之SAX解析
- XML解析之SAX解析
- XML解析之SAX解析
- XML解析之SAX解析
- xml解析-2 SAX解析
- spring-boot 热加载实现替换Jrebel
- CodeForces 66D 数学构造
- 递归阶乘
- 欢迎使用CSDN-markdown编辑器
- 小伙的java之旅——日历
- XML解析:SAX解析
- 自增Build id配置
- 一种针对滑动变阻器AD值采集线性化处理算法
- js文本框回车事件
- OnlineJudge系统解析(一)
- GDB的使用
- iOS开发调用手机打电话,短信,邮箱和地图
- JavaEE之Servlet基础入门一
- 第十一周项目一 验证算法(1)层次遍历算法的验证