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对象之间进行转换。本文会有所介绍。

原文地址:http://www.journaldev.com/1240/java-xml-tutorial

Java&Xml教程(一)简介的更多相关文章

  1. Java&Xml教程(六)使用JDOM解析XML文件

    JDOM 提供了非常优秀的Java XML API来更方便的读取.修改.生成XML文档.JDOM还提供了包装类供用户从SAX.DOM.STAX事件解析.STAX流解析中选择具体的实现. 在本教程中,我 ...

  2. Java&Xml教程(九)Java中通过XSD校验XML合法性

    Java XML校验API能够通过XSD(XML Schema Definition)校验XML文件内容的合法性.在下面的案例中使用javax.xml.validation.Validator 类通过 ...

  3. Java&Xml教程(八)使用JDOM将Java对象转换为XML

    在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件. JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutput ...

  4. Java&Xml教程(七)使用JDOM修改XML文件内容

    JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...

  5. Java&Xml教程(四)使用DOM方式生成XML文件

    在前面的教程中,我们学习了使用DOM解析方式读取和修改XML文件内容,今天我们来学习如何使用DOM解析机制生成XML文件. 下面是我们对要生成的XML文件的具体要求: 1.根节点元素为"Em ...

  6. Java&Xml教程(二)使用DOM方式解析XML文件

    DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...

  7. Java&Xml教程(十一)JAXB实现XML与Java对象转换

    JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,能够帮助开发者很方便的將XML和Java对象进行相互转换. 本文以一个简单的例 ...

  8. Java&Xml教程(十)XML作为属性文件使用

    我们通常会将Java应用的配置参数保存在属性文件中,Java应用的属性文件可以是一个正常的基于key-value对,以properties为扩展名的文件,也可以是XML文件. 在本案例中,將会向大家介 ...

  9. Java&Xml教程(五)使用SAX方式解析XML文件

    Java SAX解析机制为我们提供了一系列的API来处理XML文件,SAX解析和DOM解析方式不太一样,它并不是將XML文件内容一次性全部加载,而是连续的部分加载. javax.xml.parsers ...

随机推荐

  1. zoj 3812 状压dp

    转载:http://blog.csdn.net/qian99/article/details/39138329 题意:给出n个物品,每个物品有两种属性Wi,Ti,有q组查询,每组查询要求在n个物品中选 ...

  2. MyBatis3-SqlSessionDaoSupport的使用

    以下内容引用自http://www.yihaomen.com/article/java/336.htm: 在MyBatis3中这个Mapper接口貌似充当了以前在iBatis2中的DAO层的作用.但事 ...

  3. docker: 解决centos7下cgroup.procs: no such device的错误

    在centos7下,运行docker run的时候会发生cgroup.procs: no such device的错误,解决方法是编辑 /lib/systemd/system/docker.servi ...

  4. OpenFlashChart的图片导出

    http://www.cnblogs.com/mcmurphy/archive/2012/10/15/2724894.html http://teethgrinder.co.uk/open-flash ...

  5. 第十五周oj刷题——Problem M: C++习题 矩阵求和--重载运算符

    Description 有两个矩阵a和b,均为2行3列.求两个矩阵之和.重载运算符"+",使之能用于矩阵相加(如c=a+b). 重载流插入运算符"<<&quo ...

  6. Yocto tips (17): Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST

    Yocto中能够配置一个Distrbution的License.然后全部的软件包,都须要符合这个license才干够被shipped到image中,假设我们须要使用违反此license的软件包,那么就 ...

  7. windows bat命令 开启关闭Oracle服务

    0.吐槽 单位发的ThinkPad T61.太弱小了. 问题是我去百度下T61,发现它好贵好贵.真心无力吐槽.还不如给我发台外星人,廉价点的. . Oracle一开就内存就不够了.所以绝对不能让它开机 ...

  8. CentOS-6.4-DVD系统中安装Oracle-11.2.0.4

    完整版见https://jadyer.github.io/2014/05/18/centos-install-oracle/ /** * CentOS-6.4-DVD系统中安装Oracle-11.2. ...

  9. 数据库定时删除历史数据的SQL指令

    新建作业,用于定时清除数据库的历史数据 删除表gps_comm 之前120天即一个季度的数据,例如以下: ELETE FROM gps_comm WHERE (时间 < GETDATE() - ...

  10. node.js应用Redis初步

    node.js下使用Redis,首先: 1.有一台安装了Redis的服务器,当然,安装在本机也行 2.本机,也就是客户端,要装node.js 3.项目要安装nodejs_redis模块 注意第 3 点 ...