- 浏览: 1115997 次
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
Java XML Parsing
解析XML有两种(不限于)方法: 一种是基于DOM(Document Object Model)的解析,一种是基于事件(event-based)的SAX(Sample API for XML)解析。
DOM
-Tree model parser(Object based) (Tree of nodes).
-DOM 加载所有XML到内存,然后解析。因此具有内存限制。
-DOM 可以对XML进行读写操作。
-DOM 适宜于小型的XML。
-可以对节点进行前后检索。
-运行速度慢
-JDK 7 内置
SAX
-Event based parser (Sequence of events).
-SAX 按节点,一边读一边解析。因此没有内存限制。
-SAX 只能对XML进行读操作。
-SAX 可以解析大型的XML。
-SAX 从文件头读到文件尾,不可向后检索。
-运行速度快
-需要引用第三方包:jdom
示例:
XML(text.xml)
DOM 解析
SAX解析
引用:
http://stackoverflow.com/a/19154095/2893073
https://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm#BGBGAJIA
https://docs.oracle.com/javase/tutorial/jaxp/dom/readingXML.html
-
转载请注明
原文出处:http://lixh1986.iteye.com/blog/2328760
-
-
解析XML有两种(不限于)方法: 一种是基于DOM(Document Object Model)的解析,一种是基于事件(event-based)的SAX(Sample API for XML)解析。
DOM
-Tree model parser(Object based) (Tree of nodes).
-DOM 加载所有XML到内存,然后解析。因此具有内存限制。
-DOM 可以对XML进行读写操作。
-DOM 适宜于小型的XML。
-可以对节点进行前后检索。
-运行速度慢
-JDK 7 内置
SAX
-Event based parser (Sequence of events).
-SAX 按节点,一边读一边解析。因此没有内存限制。
-SAX 只能对XML进行读操作。
-SAX 可以解析大型的XML。
-SAX 从文件头读到文件尾,不可向后检索。
-运行速度快
-需要引用第三方包:jdom
示例:
XML(text.xml)
<?xml version="1.0"?> <class> <student rollno="393"> <firstname>dinkar</firstname> <lastname>kad</lastname> <nickname>dinkar</nickname> <marks>85</marks> </student> <student rollno="493"> <firstname>Vaneet</firstname> <lastname>Gupta</lastname> <nickname>vinni</nickname> <marks>95</marks> </student> <student rollno="593"> <firstname>jasvir</firstname> <lastname>singn</lastname> <nickname>jazz</nickname> <marks>90</marks> </student> </class>
DOM 解析
package com.gentleman.util.xml; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class DOMParser { public static void main(String[] args) throws Exception { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = documentBuilder.parse( DOMParser.class.getClassLoader().getResourceAsStream("test.xml")); document.getDocumentElement().normalize(); System.out.println("Root Element : " + document.getDocumentElement().getNodeName()); System.out.println("----------------------------"); NodeList nList = document.getElementsByTagName("student"); for (int temp = 0; temp < nList.getLength(); temp++) { Node node = nList.item(temp); Element element = (Element) node; System.out.println(element.getNodeName() + " : " + element.getAttribute("rollno")); System.out.println("First Name : " + getText(element, "firstname")); System.out.println("Last Name : " + getText(element, "lastname")); System.out.println("Nick Name : " + getText(element, "nickname")); System.out.println("Marks : " + getText(element, "marks")); System.out.println("\n"); } }//end main(). private static String getText(Element element, String tag){ return element .getElementsByTagName(tag) .item(0) // get the first element of the tag name. .getTextContent(); } }
SAX解析
package com.gentleman.util.xml; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; public class SAXParser { public static void main(String[] args) throws Exception { SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(SAXParser.class.getClassLoader() .getResourceAsStream("test.xml")); Element root = doc.getRootElement(); List list = root.getChildren("student"); for (int i = 0; i < list.size(); i++) { Element element = (Element) list.get(i); String rollno = element.getAttributeValue("rollno"); String firstname = element.getChildText("firstname"); String lastname = element.getChildTextTrim("lastname"); String nickname = element.getChild("nickname").getText(); String marks = element.getChild("marks").getTextTrim(); System.out.println("Student: " + rollno); System.out.println("---------------------------"); System.out.println("firstname: " + firstname); System.out.println("lastname : " + lastname); System.out.println("nickname : " + nickname); System.out.println("marks : " + marks); System.out.println("\n"); } } }
引用:
http://stackoverflow.com/a/19154095/2893073
https://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm#BGBGAJIA
https://docs.oracle.com/javase/tutorial/jaxp/dom/readingXML.html
-
转载请注明
原文出处:http://lixh1986.iteye.com/blog/2328760
-
-
发表评论
-
java 将文件夹所有的文件合并到指定的文件夹下
2020-06-30 19:17 1083场景:将文件夹所有的文件合并到指定的文件夹下 另外:如果想效 ... -
多线程-线程池的四种创建方式
2020-04-01 18:38 509多线程-线程池的四种创建方式 https://blog.cs ... -
Java基础之:nio
2019-11-13 15:38 500一、理论讲解: 史上最强Java NIO入门:担心从入门到放弃 ... -
Java 分布式之:RPC 基本概念
2019-11-13 15:07 478转载: https://www.jianshu.com/p/ ... -
Java之 volatile 关键字原理详解
2019-11-07 15:36 569一、什么是 volatile ? ... -
POI实现excell批注背景图片(仿html浮窗显示图片)
2019-10-21 08:17 715POI实现excell批注背景图片(仿html浮窗显示图片) ... -
Java之设计模式之 Observer 观察者
2019-07-04 17:21 1095观察者设计模式 Java 已经实现了该模式,并且提供了使用类 ... -
HashMap, LinkedHashMap and TreeMap
2019-03-01 11:04 685https://stackoverflow.com/a/177 ... -
Java lib 操作 excel 插入图片
2019-01-19 12:46 883https://poi.apache.org/componen ... -
数据库连接池C3P0
2018-05-29 16:50 907一、名字的由来 很多 ... -
Java8之集合(Collection)遍历 forEach()、stream()
2018-05-29 14:39 20759package java8.collections; ... -
Junit Vs main on "java.util.concurrent.Executors"
2017-11-10 16:44 840Same code with different result ... -
Java之大数据学习路线
2017-11-03 10:08 5727三个月大数据研发学习 ... -
Java中创建对象的5种方式
2017-10-26 14:21 844一、Java之5种创建对象的方式 ————————————— ... -
Log4j和Slf4j的比较
2017-06-23 12:41 1420一直搞不清 Log4j 和 SLF4j 的关系。今天才若有所 ... -
Java之Java7新特性之try资源句式
2017-04-20 14:58 5388Java之Java7新特性之try资源句式 一、【try资源 ... -
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
2017-03-04 21:27 3843一、如何使用 ExecutorService.submit() ... -
Java之 java.util.concurrent 包之Executor与ExecutorService
2017-03-04 21:18 2709一、问题: execute() 与 submit() 的区别? ... -
JAVAEE之单用户登录
2017-02-05 11:55 1063单用户登录是系统中数据一直性的解决方案之一。 问题背景: 试 ... -
Java之多线程之线程池之线程重复使用
2017-02-04 13:33 5574一、问题背景 在使用多线程时,如果要开启一个任务,则就需要新 ...
相关推荐
首先,Java提供了两种主要的API来处理XML:DOM(文档对象模型)和SAX(简单API for XML)。DOM解析器会将整个XML文件加载到内存中,形成一个树形结构,适合处理小到中等规模的XML文档。而SAX解析器采用事件驱动的...
XML学习笔记(包括Java的两种解析XML的方法)。 XML基础语法的介绍,DTD的介绍和使用。 可快速入门,也可当手册使用。
DOM4J是一个基于Java的高效XML解析库,它是对DOM和SAX API的一个简单而强大的封装。DOM4J提供了更简洁的API,使得XML的解析和操作更加容易。DOM4J已成为XML解析的一种流行选择。 ### 性能对比 不同解析方式之间的...
Java提供了多种解析XML的技术,包括DOM(Document Object Model)、SAX(Simple API for XML)以及本文将详细介绍的StAX(Streaming API for XML)。StAX是一种基于事件驱动的API,适用于大量或流式XML数据的处理。 ...
Java在线解析XML是一种常见的编程任务,特别是在处理Web服务...在处理sinaApps这样的数据时,可能涉及从XML响应中提取应用信息,如应用ID、名称、描述等,这时可以利用这些解析方法将XML数据转化为易于处理的Java对象。
Java 解析 XML 主要涉及两种主流方法:DOM(Document Object Model)和 SAX(Simple API for XML),以及另外两种更现代的技术:StAX(Streaming API for XML)和JAXB(Java Architecture for XML Binding)。...
在Java中,XML的处理主要包括生成和解析两个方面,而解析又可以进一步细分为DOM和SAX两种主要方式。此外,还有基于StAX(Streaming API for XML)和JAXB(Java Architecture for XML Binding)的方式。 #### 二、...
本主题将深入探讨Java中常用的两种XML解析库:DOM4J和JDOM。 首先,我们来看DOM4J。DOM4J是一个灵活且功能强大的Java XML API,它基于DOM(Document Object Model)模型,但提供了更多的高级特性,如XPath支持和XML...
DOM解析是Java中一种常用的处理XML文档的方式。它将整个文档加载到内存中,并通过DOM树的形式提供对文档内容的访问。这种方式适用于需要频繁访问和修改XML文档的应用场景。上述示例代码展示了如何使用DOM解析器加载...
除了上述两种常见的方法外,还有两种方法用于解析XML: 1. **StAX(Streaming API for XML)**:这是一种非阻塞、基于事件的流式API,适合于处理大型XML文档。StAX结合了SAX和DOM的优点,提供了更高效的解析机制。 ...
Java是一种广泛使用的编程语言,尤其在企业级应用和Web服务中。XML(eXtensible Markup Language)作为数据交换和存储的标准格式,被广泛应用在各种系统间的数据传输。当需要在Java程序中处理XML文件时,Java提供了...
JDOM是一种专门为Java设计的XML解析库,它不是Java标准库的一部分,但因为其简洁的API而受到许多开发者的欢迎。JDOM提供了`SAXBuilder`、`Document`、`Element`等类来简化XML文档的处理。与DOM不同,JDOM更注重简化...
在Java编程环境中,XML(可扩展标记语言)是一种常见的数据交换格式,用于存储和传输结构化数据。为了在Java中解析XML文档,开发者通常需要引入特定的库或框架。在这个场景中,提到的两个关键库是`dom4j`和`jdom`,...
除了上述两种基本方法外,Java还提供了另外两种常用的解析方法:StAX(Streaming API for XML)和JDOM(Java Documentation Object Model)。 ##### 3. StAX解析 StAX是一种流式的XML解析方式,它结合了SAX和DOM的...
本篇将深入探讨两种主要的XML解析技术:DOM(Document Object Model)和SAX(Simple API for XML)。 DOM解析器将整个XML文档加载到内存中,构建一个树形结构,允许开发者通过节点遍历、查找和修改XML内容。这种...
Java 使用 JDOM 解析 XML 文件 Java 是一种广泛使用的程序设计语言,而 XML 是一种广泛使用的标记语言,用于存储和传输数据。在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和...
### JAVA解析XML知识点详解 #### 一、XML与JAVA的关系 **XML (eXtensible Markup Language)** 是一种用于标记...此外,还介绍了如何使用Java代码实现这两种方式的具体操作,帮助开发者更好地理解和应用XML解析技术。
Java XML解析是Java编程中的一项重要技能,XML(Extensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储以及文档结构化等场景。本项目提供了在Eclipse环境中,利用Maven构建的示例代码,...
总之,XML解析是处理XML数据的关键步骤,DOM和SAX是两种主要的解析方式,各有优缺点。Java提供了强大的XML处理库,使得在Java项目中使用XML变得简单高效。无论是解析配置文件、交换数据还是构建复杂的XML结构,理解...
XML解析主要分为两种方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,便于遍历和操作。这种方式适合小规模的XML文档,但对大文件可能会...