| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
11年前发布

JAXP学习总结

1.JAXP简介

和DOM一样,都是一种XML解析技术。JAXP开发包是JavaSE的一部分

在javax.xml.parsers包中,定义了几个工厂类,通过调用这些工厂类,可以得到对XML文档进行解析的DOM或SAX的解析器对象

2.SAX解析的特点

不同于DOM解析,SAX无需加载整个XML文档,即在读取文档的时候便对文档进行处理

SAX采用事件处理的方式解析XML文件,利用SAX解析XML文档,涉及 解析器 和 事件处理器 两个部分。

    解析器:可以使用JAXP的API创建,创建出SAX解析器后,便可以指定解析器去解析某个XML文档。

    事件处理器:由程序员编写

3.DEMO

有如下XML文件car.xml

    <?xml version="1.0" encoding="UTF-8"?>        <车辆清单>            <汽车>                <车牌 出产时间="2011年">奥迪</车牌>                <产地>北京</产地>                <单价>30</单价>            </汽车>        </车辆清单>  
使用SAX解析该文件
    package web.java.xml.sax;                import java.io.File;                import javax.xml.parsers.SAXParser;        import javax.xml.parsers.SAXParserFactory;                import org.xml.sax.Attributes;        import org.xml.sax.helpers.DefaultHandler;                /**        * 基于SAX解析XML文件        * @author well        *        */        public class Demo1 {            public static void main(String[] args) throws Exception {                //创建SAX解析器工厂                SAXParserFactory factory = SAXParserFactory.newInstance();                //创建SAX解析器                SAXParser saxParser = factory.newSAXParser();                File file = new File("src/web/java/xml/sax/car.xml");                //加载XML文件                saxParser.parse(file, new MyHanler());            }        }                //自定义SAX处理器        class MyHanler extends DefaultHandler{            public void startElement(                    String uri,                     String localName,                     String qName,                     Attributes attributes){                System.out.println("<"+qName+">");                System.out.println("有"+attributes.getLength()+"个属性");                System.out.println(attributes.getValue("出产时间"));            }             public void endElement(                    String uri,                     String localName,                     String qName){                System.out.println("</"+qName+">");            }             public void characters(                    char[] ch,                     int start,                     int length){                String content = new String(ch,start,length);                if(content.trim().length()>0){                    System.out.println(content);                }            }         }  

来自:http://blog.csdn.net/tao_sun/article/details/9004829

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1370089433836.html
JAXP XML操作类库