Java 解析XML的几种方式:DOM、SAX、JDOM和DOM4J。

  归纳总结Java解析XML主要有四中方式,分别是DOM、SAX、JDOM和DOM4J。其中DOM和SAX是官方包自带,另外两个JDOM和DOM4J是第三方包。

一、此篇测试代码用到的XML情况 。

1、XML内容展示

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <class>
 3     <people>
 4         <name>Jack</name>
 5         <age>19</age>
 6         <sex>male</sex>
 7         <job>student</job>
 8     </people>
 9     <people>
10         <name>Merry</name>
11         <age>26</age>
12         <sex>female</sex>
13         <job>teacher</job>
14     </people>
15 </class>

2、所在项目位置

二、几种方式

1、DOM方式代码及运行结果,已省略类名及main函数代码。

 1 import org.w3c.dom.Document;
 2 import org.w3c.dom.Element;
 3 import org.w3c.dom.Node;
 4 import org.w3c.dom.NodeList;
 5 import org.xml.sax.SAXException;
 6 import javax.xml.parsers.DocumentBuilder;
 7 import javax.xml.parsers.DocumentBuilderFactory;
 8 import javax.xml.parsers.ParserConfigurationException;
 9 import java.io.File;
10 import java.io.IOException;
11 /**
12  * Create by 让子弹飞 on 2020/4/5
13  */
14         try {
15             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
16             DocumentBuilder builder = factory.newDocumentBuilder();
17             String path = HelloWorld.class.getClassLoader().getResource("config/peoples.xml").getPath();
18             File file = new File(path);
19             Document document = builder.parse(file);
20             // 获取节点People集合
21             NodeList nodeList = document.getElementsByTagName("people");
22             for (int i = 0; i < nodeList.getLength(); i++) {
23 //                Element element=(Element) nodeList.item(i);
24 //                NodeList childNodes=element.getChildNodes();
25                 Node node = nodeList.item(i);
26                 NodeList childNodes = node.getChildNodes();
27                 for (int j = 0; j < childNodes.getLength(); j++) {
28                     Node childNode = childNodes.item(j);
29                     if (childNode.getNodeType() == Node.ELEMENT_NODE) {
30                         // 获取节点名称
31                         // 获取对应节点包含的值
32                         System.out.println(childNode.getNodeName() + ":" + childNode.getFirstChild().getNodeValue());
33                     }
34                 }
35                 System.out.println("************************");
36             }
37         } catch (ParserConfigurationException ex) {
38             //ex.printStackTrace();
39             System.out.println("Error : " + ex.toString());
40         } catch (IOException ex) {
41             //ex.printStackTrace();
42             System.out.println("Error : " + ex.toString());
43         } catch (SAXException ex) {
44             //ex.printStackTrace();
45             System.out.println("Error : " + ex.toString());
46         }

2、SAX方式

// TODO

三、整理参考了以下链接文章

https://www.jb51.net/article/115316.htm

https://blog.csdn.net/m0_37499059/article/details/80505567

  

原文地址:https://www.cnblogs.com/mojiejushi/p/12635674.html

时间: 2024-10-07 16:06:17

Java 解析XML的几种方式:DOM、SAX、JDOM和DOM4J。的相关文章

详解android解析Xml的三种方式——DOM、SAX以及XMLpull

今天学习了android解析Xml的三种方式——DOM.SAX以及XMLpull,这里对它们进行总结. 如果理解有误,欢迎指正   ^_* 一.DOM方式解析: xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据.这个写起来很简单,但是很消耗内存.要是数据过大,手机不够牛逼,可能手机直接死机. 常用的DoM接口和类: Document:该接口定义分析并创建DOM文档的一系列方法,它是文档树的根,是操作DOM的基础.Element:该接口继承Node接口,提供了获

java解析xml文件四种方式介绍、性能比较和基本使用方法

一.介绍: 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以在任何时候在树中上下导航,而不

java解析xml的几种方式

第一种:DOM. DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过 对这个对象模型的操作,来实现对XML文档数据的操作.通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM 接口的机制也被称作随机访问机制. DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档 结构形成了一

Java解析xml文件四种方式

1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以在任何时候在树中上下导航,而不是

java解析xml的三种方法

java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; // public class Saxhandler extends DefaultHandler { @Override public void startDocument() throws

解析XML的4种方式及优缺点比较

dom, sax是解析xml的底层接口 而jdom和dom4j则是基于底层api的更高级封装    dom是通用的,而jdom和dom4j则是面向java语言的 (方法一). DOM解析说明:为 XML 文档的已解析版本定义了一组接口.解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构.优点:整个文档树在内存中,便于操作:支持删除.修改.重新排列等多种功能:缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间:使用场合:一旦解析了文档还需多次

详解Java解析XML的四种方法

(1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取 和操作文档的任意部分,是W3C的官方标准 [优点] ①允许应用程序对数据和结构做出更改. ②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据. [缺点] ①通常需要加载整个XML文档来构造层次结构,消耗资源大. [解析详解] ①构建Document对象: DocumentBuilderFactory dbf = DocumentBu

详解Java解析XML的四种方法(转)

XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xm

Java学习之道:详解Java解析XML的四种方法

XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transform