1.java中解析xml的几种方式

1.1 JDK原生dom形式 原理:一次性把xml读入内存,在内存中构建成树形结构。优点:对节点操作方便,缺点:需要大量的内存空间,浪费资源

1.2 SAX形式 原理:基于事件形式,当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。优点:相对于dom形式更快捷,占用资源少。缺点:没有持久话。事件过后,若没保存数据,那么数据就丢了。

1.3 DOM4J 它是一个开源的框架,具有性能优异、功能强大和极端易用使用的特点。

1.4 JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。

2.JAXB的几个核心对象

2.1 JAXBContext Jaxb的上下文,通过这个对象我们能拿到另外两个核心对象Unmarshaller(用于解析xml)和Marshaller(生成xml)

2.2 JAXBContext通常使用它的静态方法newInstance(Class className)来获得对象

2.3 Unmarshaller用于解析xml 通过JAXBContext的createUnmarshaller方法获得到

2.4 Marshaller用于生成xml 通过JAXBContext的createMarshaller方法获得到

3.示例代码

3.1 实体类Bean与Property

 package org.lyrk.accp8.s2.chapter.xml;

 import javax.xml.bind.annotation.*;

 /**
* Created by niechen on 17/5/9.
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Bean { @XmlElement
private Property property; public Property getProperty() {
return property;
} public void setProperty(Property property) {
this.property = property;
}
} @XmlAccessorType(value = XmlAccessType.FIELD)
class Property {
@XmlAttribute(name = "id")
private String id; @XmlAttribute(name = "value")
private String value; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getValue() {
return value;
} public void setValue(String value) {
this.value = value;
}
}

3.2 主函数类

 package org.lyrk.accp8.s2.chapter.xml;

 import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.InputStream; /**
* Created by niechen on 17/5/9.
*/
public class Test { public static void main(String[] args) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(Bean.class);//创建JAXBContext对象,注意一定要传@XmlRootElement的所标记的类的类型
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();//拿到xml解析对象
InputStream inputStream = Bean.class.getClassLoader().getResourceAsStream("bean.xml");//在classpath下读取xml的文件流
Bean bean = (Bean) unmarshaller.unmarshal(inputStream);//将xml转换成实体对象
System.out.println(bean.getProperty().getId());//输出ID属性
System.out.println(bean.getProperty().getValue());//输出value属性
} catch (JAXBException e) {
e.printStackTrace();
}
}
}

3.3 xml文件内容

 <?xml version="1.0" encoding="UTF-8"?>
<bean>
<property id="name" value="10" />
</bean>

使用JAXB解析xml文件(一)的更多相关文章

  1. 使用JAXB解析xml文件(二)

    前面一章简单演示了JAXB的用法,这个章节主要梳理一下JAXB常见的几个注解 1.@XmlRootElement 用于类级别的注解,对应xml的跟元素,常与 @XmlType 和 @XmlAccess ...

  2. 解析xml文件的几种技术与Dom4j与sax之间的对比

    一.解析xml文件的几种技术:dom4j.sax.jaxb.jdom.dom 1.dom4j dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常优秀的 ...

  3. Android 解析XML文件和生成XML文件

    解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...

  4. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

  5. JAVA中使用DOM解析XML文件

    XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...

  6. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  7. XML:使用DOM技术解析xML文件中的城市,实现select级联选择

    中国的城市xml格式:cities.xml <?xml version="1.0" encoding="utf-8"?> <china> ...

  8. dom4j如何解析XML文件

    最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...

  9. java解析XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

随机推荐

  1. 【nodejs】安装browser-sync 遇到错误提示

    首先我用的是mac电脑在我执行安装browser-sync时遇到如下问题: 因为不被允许所以我只能不安装全局了: 但是又出现了如下的新问题 纠结了半个小时,终于知道为什么会出现这个问题了, node只 ...

  2. 儿童节,我们从零开始——Python入门资源推荐

    原创 2017-06-01 玄魂工作室 玄魂工作室 今天是六一儿童节,首先祝所有的小朋友身体健康,能永远生活在一个没有战争,没有压迫的世界里,永远快乐. 上一篇文章,很多人都对Python的各种书籍感 ...

  3. DSkin 的WebUI开发模式介绍,Html快速开发Winform的UI

    新版WebUI开发模式采用MiniBlink内核,这个内核功能更完善,dll压缩之后才5M,而且提供开发者功能,内核还在更新中,而且是开源项目:https://github.com/weolar/mi ...

  4. Python内置函数(34)——map

    英文文档: map(function, iterable, ...) Return an iterator that applies function to every item of iterabl ...

  5. Java开发利器--Lombok,IDEA端安装教程

    1.插件安装File-Setting-Plugins 2.开启注解支持: 3.安装lombok maven插件 <plugin> <groupId>org.projectlom ...

  6. SpringCloud的Hystrix(一) 一个消费者内的两个服务监控

    一.概念与定义 1.服务雪崩 在微服务架构中,整个系统按业务拆分出一个个服务,这些服务之间可以相互调用(RPC),为了保证服务的高可用,单个服务通常会集群部署. 但是由于网络原因或自身原因,服务并不能 ...

  7. python入门(12)dict

    python入门(12)dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例 ...

  8. 移动端登录页面input获取焦点后页面布局及输入框上移的问题

    最近切微信页面的时候,发现移动端的登录页面,带输入框的那种,如图: 从页面本身来看没有什么问题,上传至测试服务器,用iphone访问也没有什么问题,但是当同事用Android手机获取焦点后,问题来了, ...

  9. MongoDB GridFS 存储大文件

    我们经常会遇到这样的场景:上传/下载文件. 有两种思路可以解决这个问题: (1)将文件存储在服务器的文件系统中: (2)将文件存储在数据库中. 如果我们选择(2),那么我们可以使用MongoDB Gr ...

  10. anaconda的使用

    1. 查看已安装的库 pip list conda list 其中,pip list 只能查看库,而 conda list 则可以查看库以及库的版本 2. 安装或更新库 pip install scr ...