Java&Xml教程(一)简介
XML是广泛用于数据传输和存储的技术。Java语言提供个各种各样的API来解析XML,例如DOM、SAX、StAX、JAXB。也还有一些其他的API用于解析XML,例如JDOM。本教程的目的是探索使用不同类型的API解析XML和学习使用XML执行一些常见的任务。
DOM XML解析
DOM解析是最简单的解析方式,將XML文件加载到内存中,然后我们可以通过遍历Node节点来解析XML。DOM解析适用于内容较少的小文件,当文件较大时解析速度非常慢,并且很占用内存。
读取xml文件
此文介绍如何使用DOM解析XML文件,并将XML内容转换为Java对象。
生成XML文件
这篇文章介绍如何將Java对象转换为XML文件并存储到本地磁盘中。
修改XML文件
DOM解析机制同样可以用于修改XML数据。这篇文章介绍如何使用DOM解析机制新增元素、删除元素、修改元素值、修改属性等操作。
SAX XML解析
Java SAX解析机制提供了解析XML文档的API,SAX解析机制和DOM不同,它并不是將XML全部加载到内存中,而是按照顺序读取XML文档。它是基于事件的解析,我们需要实现自定义的Handler类,使用它的回调方法解析XML文件。当对大文件进行解析时,它比DOM解析机制效率更高。
读取XML文件
学习如何创建我们的回调Handler类,將XML内容读取到一个List中。
StAX XML解析
Java StAX 全称是Java Streaming API for XML,提供了解析XML的具体实现。StAX由两组API构成—基于游标的API和基于迭代器的API。
使用StAX Iterator API 读取XML文件
在这个教程中我们將学到如何使用StAX迭代的读取XML。
使用StAX Iterator API生成XML文件
在这个教程中我们將学到如何使用基于迭代器的StAX API生成XML。
使用StAX Cursor API读取XML文件
本文介绍如何使用StAX Cursor API 读取XML数据到Java对象中。
使用StAX Cursor API 生成XML文件
Java StAX Cursor API在创建XML并在其中输出数据方面是非常直接的。我们需要创建XMLStreamWriter对象,然后往对象中写数据即可。
JDOM XML解析
JDOM提供了非常优秀的API使得读取、修改、生成XML文件更加简单。它提供了包装类供你从SAX解析、DOM解析、StAX事件解析中选择具体的实现。
使用JDOM的好处是你可以从SAX、DOM STAX中切换解析器,而且可以提供工厂方法让客户机应用程序选择实现。
JDOM读取XML文件
这个教程中,我们将会学到如何使用JDOM读取XML文件。
JDOM生成XML文件
在这个教程中,我们会学习使用JDOM写XML文件。JDOM Document提供了创建元素和属性便捷的方法。XMLOutputter 类可以用于將Document对象写到任意的OutputStream或Writer对象。
JAXB
JAXB的全称是Java Architecture for XML Binding,使用它提供的API可以很轻松的將Java对象转换为XML,或将XML内容转换为Java对象。JAXB作为一个单独的项目,但是在Java 6中它成为JDK的一部分。
JAXB教程
使用JAXB非常简单,它使用注解,我们需要在Java对象上使用注解以指示创建XML,接着需要创建Marshaller將对象转换为XML,使用Unmarshaller將XML转换为Java对象。在这个教程中,我们將会学到大部分JAXB注解,并学会使用Marshaller將对象转换为XML,使用Unmarshaller將XML转换为对象。
JiBX
JiBX是非常强大的框架用于將XML和Java对象进行互相转换,它在使用XML作为数据传输格式的多应用集成方面使用较为广泛,例如Web Service和基于消息模型的系统集成。
JiBX教程
有许多框架可用于XML转换,如JAXB和XMLBeans,但JiBX对XML绑定和转换过程中使用不同的方法,JiBX通过工具类在编译时生成Ant脚本来执行这些任务。这种方法通过摆脱传统的两步处理方式,大大减少了处理时间。
XPath
XPath提供语法定义部分XML文档,XPath表达式使用查询字符串选择部分XML文档。使用XPath表达式,我们能够找到任何一个节点。
XPath教程
javax.xml.xpath 包提供了XPath的支持。可用通过XPath API提供的工厂方法创建XPathExpression,这个教程主要介绍使用XPath表达式查找XML节点。
一些XML相关任务
在Eclipse中从XSD中生成一般的XML
如果你从事Web Service相关工作,你需要使用XSD并测试WebService,你需要从XSD文件生成XML文件。Eclipse提供非常简单的方式帮你完成。
使用XSD校验XML合法性
Java XML Validation API可以使用XSD校验XML文件,这个教程中將使用到javax.xml.validation.Validator类。
Java XML 属性文件
通常我们java应用程序的配置参数存储在属性文件中。Java的属性文件可以是一个键值对的properties文件也可以是一个XML文件。在本例中介绍如何使用XML作为属性文件,并从属性文件中获取相关信息。
SOAP XML
Soap是基于XML的传输协议,Soap全称Simple Object Access Protocol.Soap是轻量级的数据交换机制,基于XML而且跨平台。
格式化XML文档
使用实用的工具类打印XML并將XML Document对象转换为字符串。
String和Document互相转换
有时我们在Java编程中,获得一个字符串,它的内容是XML数据格式,如果需要处理它,我们需要將它转换为一个Document对象。或者有时出于调试的目的,需要將Document对象转换为字符串输出。有两个实用的方法可以將String和Document对象之间进行转换。本文会有所介绍。
Java&Xml教程(一)简介的更多相关文章
- Java&Xml教程(六)使用JDOM解析XML文件
JDOM 提供了非常优秀的Java XML API来更方便的读取.修改.生成XML文档.JDOM还提供了包装类供用户从SAX.DOM.STAX事件解析.STAX流解析中选择具体的实现. 在本教程中,我 ...
- Java&Xml教程(九)Java中通过XSD校验XML合法性
Java XML校验API能够通过XSD(XML Schema Definition)校验XML文件内容的合法性.在下面的案例中使用javax.xml.validation.Validator 类通过 ...
- Java&Xml教程(八)使用JDOM将Java对象转换为XML
在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件. JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutput ...
- Java&Xml教程(七)使用JDOM修改XML文件内容
JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...
- Java&Xml教程(四)使用DOM方式生成XML文件
在前面的教程中,我们学习了使用DOM解析方式读取和修改XML文件内容,今天我们来学习如何使用DOM解析机制生成XML文件. 下面是我们对要生成的XML文件的具体要求: 1.根节点元素为"Em ...
- Java&Xml教程(二)使用DOM方式解析XML文件
DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...
- Java&Xml教程(十一)JAXB实现XML与Java对象转换
JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,能够帮助开发者很方便的將XML和Java对象进行相互转换. 本文以一个简单的例 ...
- Java&Xml教程(十)XML作为属性文件使用
我们通常会将Java应用的配置参数保存在属性文件中,Java应用的属性文件可以是一个正常的基于key-value对,以properties为扩展名的文件,也可以是XML文件. 在本案例中,將会向大家介 ...
- Java&Xml教程(五)使用SAX方式解析XML文件
Java SAX解析机制为我们提供了一系列的API来处理XML文件,SAX解析和DOM解析方式不太一样,它并不是將XML文件内容一次性全部加载,而是连续的部分加载. javax.xml.parsers ...
随机推荐
- [24点计算器][C++版本]无聊拿去玩
特性:数字数量.目标答案不限,当然数据大了会很慢... 基本可以去除所有本质相同的表达式...至少能等出结果的数据规模可以.. 安卓:http://yun.baidu.com/s/1slCGILn 程 ...
- Qt移动应用开发(二):使用动画框架
Qt移动应用开发(二):使用动画框架 上一篇博客介绍了怎样使用Qt的QML来对屏幕分辨率大小进行适应,其实,不同分辨率的适应是一个很棘手的问题,除了分辨率不同外,宽高比(aspect ratio)也不 ...
- Python3基础(一) Hello World
对于新手一般会遇到一个问题:学习Python 2还是Python 3呢? 对于我个人而言,我是个完全的新手,没有历史包袱,所以我直接学习Python 3.我相信在未来几年,Python 3会逐步取代P ...
- LeetCode 67. Add Binary (二进制相加)
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- CentOS 7下安装Hadoop2.2
这里就介绍CentOS的安装了,直接进入Hadoop2.2伪分布模式安装. 1.安装包下载 1.1.下载JDK1.7 眼下JDK的版本号是jdk1.8.0_25.这里下载的是jdk1.7.0_67. ...
- Database returned no natively generated
database returned no natively generated 分类:Hibernatehbm.xml中的配置如下: <id name="logId" typ ...
- svn 运行clear up 失败的解决的方法
SVN 的clear up命令失败的解决方法 1. 下载 sqlite3.exe 文件,放到d盘根文件夹. (能够到这里下载 http://download.csdn.net/detail ...
- POJ 3221 Diamond Puzzle.
~~~~ 题目链接:http://poj.org/problem? id=3221 显然是BFS找最优解.但是终止条件不好写.看到有一仅仅队交上去一直TLE. 比赛完了看题解原来是以目标状态为起点,B ...
- 我的Android进阶之旅------>Android关于ImageSpan和SpannableString的初步了解
近期要实现一个类似QQ聊天输入框.在输入框中能够同一时候输入文字和表情图像的功能.例如以下图所看到的的效果: 为了实现这个效果.先去了解了一下ImageSpan和SpannableString的使用方 ...
- CDHD驱动器——ServoStudio配置高创伺服速度模式不转
1. 摘要 速度模式(LED灯显示为0)时,电机不转,但是在位置模式(LED灯显示为8)却可以正常运转. 2. 设置 设置commode=1,fbitprd=1,fbitidx=-3,modmode= ...