xml解析

作者: 北海北_6dc3 | 来源:发表于2020-02-12 16:03 被阅读0次

参考资料:
官网
XML文件解析DOM解析和SAX解析

  • dom:把整个XML文档放入内存,适合XML随机访问,占用内存资源大
  • sax:事件驱动型的XML解析方式,顺序读取,不用一次装载整个文件,遇到标签会触发一个事件,适合对XML的顺序访问,占用内存资源稍小

1、SAX解析

1.1 使用方
  • logback读取配置
1.2 sax实现流程,核心定义saxEventRecorder 。

整体实现

        //获取解析器
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser parser = factory.newSAXParser();
        //使用saxEventRecorder ,解析文件
        parser.parse("src/com/briup/test3/book.xml", saxEventRecorder );

saxEventRecorder 实现

public class SaxEventRecorder extends DefaultHandler 
{
            //解析开始标题文档
            public void startDocument() throws SAXException {
                System.out.println("<?xml version= 1.0 encoding= utf-8 ?>");
                
            }

            //解析节点
            @Override
            public void startElement(String uri, String localName,
                    String qName, Attributes attributes) throws SAXException {
                System.out.print("<"+qName+" ");
                for (int i = 0; i < attributes.getLength(); i++) {
                    System.out.print(attributes.getQName(i)+"="+attributes.getValue(i));
                    
                }
                System.out.print(">");
            }

        
            @Override
            //解析结束
            public void endElement(String uri, String localName, String qName)
                    throws SAXException {
                System.out.print("</"+qName+">");
            }

            @Override
            //解析内容
            public void characters(char[] ch, int start, int length)
                    throws SAXException {
                String string = new String(ch, start, length);
                System.out.print(string);
            }
}

2、DOM解析

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        if (entityResolver != null) {
            docBuilder.setEntityResolver(entityResolver);
        }
        if (errorHandler != null) {
            docBuilder.setErrorHandler(errorHandler);
        }
        docBuilder.parse(inputSource);

相关文章

  • iOS解析XML

    2.0 XML解析 2.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 2.2 XML解析...

  • iOS开发-XML解析

    一、 XML解析 1.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 1.2 XML解析 ...

  • 3-XML解析

    3.0 XML解析 3.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 3.2 XML解析...

  • XML、JSON解析

    XML解析 XML_GData解析 JSON解析

  • 05、网络解析

    解析:从事先规定好的格式中提取数据iOS开发常见的解析:XML解析,JSON解析 XML解析 XMl事例: XML...

  • Senior进阶 网络之数据解析之XML解析和JSON解析的用法

    Senior进阶 网络之数据解析之XML解析和JSON解析的用法 XML解析之SAX解析 XML解析之DOM解析 ...

  • XML

    NSXMLParser解析XML GDataXML解析XML

  • XML*

    目录 XML简介 XML基本语法 XML解析 * DOM解析   * DOM解析原理及工具   * DOM4J解析...

  • 面试相关

    1.Json解析与XML解析 Gson解析和FastJson ,FastJson解析效率高 XML解析,SAX解析...

  • 五、Groovy语法(五)json、xml解析

    Groovy数据解析 一、json解析 请求网络数据并解析 二、xml解析 groovy解析xml数据 groov...

网友评论

      本文标题:xml解析

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