XML文件读取
来源:互联网 发布:mac 微信 2.0.0 编辑:程序博客网 时间:2024/05/17 04:57
DOM方式:
1.创建DocumentBuilderFactory的对象dbf。
DocumentBuilderFactory dbf = DocumnetBuilderFactory.instance();
2.利用dbf创建DocumentBuilder对象
DocumentBuilder db = dbf.newDocumentBuilder();
3.用db的parse方法获取Document对象。
Document document = db.parse("*.xml");
4.利用Document对象进行节点解析。
SAX方式:
1.创建SAXParserFactory对象spf。
SAXParserFactory spf = SAXParserFactory.newInstance();
2.利用spf的newSAXParser()方法获取SAXParser()实例对象sp。
SAXParser sp = factory.newSAXParser();
3.创建一个继承于DefaultHandler类的类,并实例化其对象handler。
SAXHandler handler = new SAXHandler();
4.利用sp的parse(“….xml”,handler)方法解析XML文件。
sp.parse("*.xml",handler);
重写handler类对象的方法…
startDocument、endDocument、startElement、endElement、characters方法...
JDOM方式:
1.创建一个SAXBuilder对象
SAXBuilder sb =newSAXBuilder();
2.创建输入流,将xml文件加载到输入流中
Inputstream in=new FileInputstream("xxx.xml");
3.通过SAXBuilder的Build方法将输入流加载到saxb中获取dom对象
Document doc = sb.build(in);
4.通过document对象获取xml文件的根结点
Element rootElement =doc.getRootElement();
5.获取根结点下的子节点的List集合
List<Element> bookList = rootElement.getChildren();
DOM4J方式:
1、创建一个 SAXReader 对象saxReader
SAXReader saxReader = new SAXReader();
2、通过saxReader的read方法加载
*.xml文件,获取docuemnt对象
Document document = saxReader.read(fileName);
3、通过 getRootElement() 获取根节点
Element rootElement = document.getRootElement();
4、通过 elementIterator() 获取子节点的迭代器
Iterator it = rootElement .elementIterator();
四种方式对比:
基础方法:DOM(平台无关的官方解析方式)、SAX(基于事件驱动的解析方式)
扩展方法:JDOM、DOM4J(在基础的方法上扩展出的,只有在java中能够使用的解析方法)
DOM:一次性将整个xml文件加载到内存中,形成DOM树
优点:形成了树结构,直观好理解,代码更容易编写
解析过程中树结构保留在内存中,方便修改
缺点:当xml文件较大时,对内存消耗比较大,容易影响解析性能并造成内存溢出
SAX:逐条语句判断解析
优点:采用事件驱动模式,对内存消耗比较小
适用于只需要处理xml中数据时
缺点:不易编码
很难同时访问同一个xml中的多处不同数据
JDOM:仅使用具体类而不使用接口
API大量使用了Collections类
DOM4J:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能
DOM4J使用接口和抽象基本类方法,是一个优秀的Java XML API
具有性能优异、灵活性好、功能强大和极端易使用的特点
是一个开放源代码的软件
性能测试结果:几kB的xml文件;建议使用DOM4J解析
DOM-33ms
SAX-6ms
JDOM-69ms
DOM4J-45ms
- SAX 读取xml文件
- xml文件读取
- 读取xml文件内容
- 读取xml 文件
- JAVA读取XML文件
- 读取远程xml文件
- XML文件的读取
- Xml文件的读取
- JAVA读取XML文件
- 读取XML文件
- flash读取xml文件
- C#读取XML文件
- javascript 读取XML文件
- 读取xml 文件
- XML文件的读取
- 读取XML文件
- JAVA读取XML文件
- JAVA读取XML文件
- leetcode (8) - String to Integer
- C++学习日记10——类简介
- 为什么选择使用Go语言
- [BZOJ3398][Usaco2009 Feb]Bullcow 牡牛和牝牛(dp)
- 贪心--2016cqround4火车运输
- XML文件读取
- MySQL数据库 prompt参数详解
- 三层交换机
- GPIO接口解析
- 树的子结构[剑指offer]之python实现
- swift 变量与常量
- 通过Ajax方式上传文件,使用FormData进行Ajax请求
- luogu1038神经网络
- leetcode_342. Power of Four 4的幂,按位与运算&,判断4的幂的情况