xml编程

作者: 李霖神谷 | 来源:发表于2017-09-01 10:08 被阅读31次

一个xml文件除了我们人去读写之外,还可以通过电脑去读写,通过电脑去读写xml文件的过程就是xml编程的过程。
1,xml解析:
要想使用电脑来读xml文件就要对文件进行解析,最主流的解析有:DOM,SAX解析。
@1,DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。
@2,SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。
2,使用sax解析xml文件代码:

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;


public class saxTast {

    /**
     * @param args
     * @throws SAXException 
     * @throws ParserConfigurationException 
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        //创建解析器工厂
        SAXParserFactory fac=SAXParserFactory.newInstance();
        //通过工厂获取sax解析器
        SAXParser par=fac.newSAXParser();
        //获取读取器
        XMLReader x=par.getXMLReader();
        //注册事件处理器
        x.setContentHandler(new MyContentHandler());
        x.parse("xuexiao.xml");
    }

}

import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;


public class MyContentHandler implements ContentHandler {

    public void characters(char[] a, int arg1, int arg2) throws SAXException {
        // TODO Auto-generated method stub
        System.out.println(new String(a,arg1,arg2));
    }

    public void endDocument() throws SAXException {
        // TODO Auto-generated method stub

        System.out.println("文档解析结束了");
    }

    public void endElement(String arg0, String arg1, String arg2)
            throws SAXException {
        // TODO Auto-generated method stub
        System.out.println(arg2);

    }

    public void endPrefixMapping(String arg0) throws SAXException {
        // TODO Auto-generated method stub

    }

    public void ignorableWhitespace(char[] arg0, int arg1, int arg2)
            throws SAXException {
        // TODO Auto-generated method stub

    }

    public void processingInstruction(String arg0, String arg1)
            throws SAXException {
        // TODO Auto-generated method stub

    }

    public void setDocumentLocator(Locator arg0) {
        // TODO Auto-generated method stub

    }

    public void skippedEntity(String arg0) throws SAXException {
        // TODO Auto-generated method stub

    }

    public void startDocument() throws SAXException {
        // TODO Auto-generated method stub
            System.out.println("文档解析开始了");
    }

    public void startElement(String arg0, String arg1, String arg2,
            Attributes arg3) throws SAXException {
        // TODO Auto-generated method stub
            System.out.println("发现了开始标签"+arg2);
    }

    public void startPrefixMapping(String arg0, String arg1)
            throws SAXException {
        // TODO Auto-generated method stub

    }

}

相关文章

  • XML编程目录

    XML编程目录 XML基础Web Service

  • xml编程

    一个xml文件除了我们人去读写之外,还可以通过电脑去读写,通过电脑去读写xml文件的过程就是xml编程的过程。1,...

  • Spring框架AOP源码分析(二)

    AOP编程使用 1.注解版本实现AOP 2.XML方式实现AOP Xml实现aop编程:1) 引入jar文件 【...

  • XML编程(CRUD)

    XML编程(CRUD): 对xml中的元素进行增删改查 create、read、update、delete 我们要...

  • XML3 - XML解析编程

    JAXP解析 JAXP的DOM解析 由解析器工厂类获取解析器工厂 解析器工厂产生一个解析器 解析XML,获得一个D...

  • (三十七)XML编程

    XML XML(EXtensible Markup Language)可扩展标记语言。本想设计为取代HTML 实际...

  • 2.0.1 Ajax

    AJAX (Asynchronous JavaScript And XML) 异步的Web编程方式 ajax开发步...

  • DOM究竟是什么?

    DOM (Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口...

  • Java 编程之 XML DOM

    0x01 前言   文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理...

  • 网络编程—数据解析(XML)

    XML 什么是XML 全称是Extensible Markup Language,译作“可扩展标记语言”跟J...

网友评论

    本文标题:xml编程

    本文链接:https://www.haomeiwen.com/subject/lvmodxtx.html