星空网 > 软件开发 > Java

JAVA解析XML之SAX方式

JAVA解析

SAX解析

  通过SAXParseFactory的静态newInstance()方法获取SAXParserFactory实例factory
  通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser
  创建一个类继承DefaultHandle,重写方法进行业务处理并创建这个类的实例handle

 

重写DefaultHandle类的方法

  startElement方法用来遍历

  endElement方法用来遍历

  startDocument方法用来标识解析开始;

  endDocument方法用来标识解析结束。

  characters方法用来获取text

  其中:参数qName 遍历到的元素的名称

     且同样会出现空白和换行的问题

下面直接上代码

JAVA解析XML之SAX方式JAVA解析XML之SAX方式
<??><bookstore>  <book id="1">    <name>JAVA编程思想</name>    <anthor>****</anthor>    <year>2000</year>  </book>  <book id="2">    <name>疯狂JAVA系列</name>    <anthor>李刚</anthor>    <price>89</price>  </book></bookstore>

books.
JAVA解析XML之SAX方式SAX.java
JAVA解析XML之SAX方式JAVA解析XML之SAX方式
package pers.zww.import javax.import org.import org.import org.public class SAXParserHandler extends DefaultHandler{  int bookIndex=0;  /*   * 解析*/  @Override  public void startElement(String uri, String localName, String qName,      Attributes attributes) throws SAXException {    super.startElement(uri, localName, qName, attributes);    //开始解析book元素的属性        if (qName.equals("book")) {      bookIndex++;      System.out.println("开始遍历第"+bookIndex+"本书");      //      //已知book元素下的属性名称,根据属性名称获取属性值//      String value=attributes.getValue("id");//      System.out.println("book的属性值:"+value);      //未知book元素下的属性名称及个数      int num=attributes.getLength();      for (int i = 0; i < num; i++) {        System.out.print("book元素的第"+(i+1)+"个属性名:"+attributes.getQName(i));        System.out.println(" && 属性值:"+attributes.getValue(i));              }    }else if(!qName.equals("book")&&!qName.equals("bookstore")){      System.out.print("节点名:"+qName);          }else {          }  }  @Override  public void characters(char[] ch, int start, int length)      throws SAXException {    // TODO Auto-generated method stub    super.characters(ch, start, length);    String val=new String(ch, start, length);    if (!val.trim().equals("")) {      System.out.println(" && 节点值:"+val);    }  }    /*   * 用来遍历*/  @Override  public void endElement(String uri, String localName, String qName)      throws SAXException {    super.endElement(uri, localName, qName);    //是否针对一本书已经遍历结束    if (qName.equals("book")) {      System.out.println("=======================");    }  }    /*   * 用来标志解析开始   */  @Override  public void startDocument() throws SAXException {    // TODO Auto-generated method stub    super.startDocument();    //第一行开始    System.out.println("SAX解析开始");  }    /*   * 用来标志解析结束   */  @Override  public void endDocument() throws SAXException {    // TODO Auto-generated method stub    super.endDocument();    //最后一行结束    System.out.println("SAX解析结束");  }}

SAXParserHandler.java

SAX与DOM对比

  DOM解析原理:先把

  SAX解析原理:通过自己创建的Handler类,去逐个分析遇到的每一个节点;(节点分析是从最外层向里层逐个开始).

参考资料

  慕课网JessicaJiang老师视频教程 链接:http://www.imooc.com/video/3789




原标题:JAVA解析XML之SAX方式

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

全面介绍商标国际分类30类的知识点:https://www.kjdsnews.com/a/1379800.html
全面介绍商标免费查询网站的优势:https://www.kjdsnews.com/a/1379801.html
全面介绍全球商标注册流程及费用:https://www.kjdsnews.com/a/1379802.html
全面介绍免费商标查询的官方入口:https://www.kjdsnews.com/a/1379803.html
全面介绍免费商标查询官网的使用方法:https://www.kjdsnews.com/a/1379804.html
亚马逊账号关联会提醒吗?亚马逊店铺关联后果严重吗?:https://www.kjdsnews.com/a/1379805.html
深圳到西安自驾路线攻略 深圳到西安自驾最佳路线:https://www.vstour.cn/a/411228.html
松花蛋是哪里的特产松花蛋的产地:https://www.vstour.cn/a/411229.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流