`
zengshaotao
  • 浏览: 792005 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

xml,java

    博客分类:
  • java
 
阅读更多
很多应用代码,对于xml只是一个解析工作而已,不能马上绑定到java 对象。对于对象,每次都需要set 或者get相应的属性,当然也可以使用map 来保存xml配置。于是,一种新的处理方式用于对象和xml之间的映射就变得非常需要,还好sun提供了jaxb,一种很方便的方式来处理java对象和xml内容
OXM
(Object XML Mapping),JAXB原来为JavaEE的一部分,在JDK1.6中,Sun把JAXB放到了Java SE中,用JDK1.5中
的新特性Annotation来标识要绑定的类和属性等
 
package com.future;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Calendar;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
public class JAXBTest {
 /*
  * 1、marshal java object----document 2、gegXMLFromObject 3、unmarshal
  * document-----java object
  */
 public static void main(String[] args) {
  try {
   JAXBContext context = JAXBContext.newInstance(Person.class);
   //gegXMLFromObject(context);
   getObjectFromXML(context);
  } catch (JAXBException e) {
   e.printStackTrace();
  }
 }
 public static void gegXMLFromObject(JAXBContext context) {
  try {
   // 下面代码演示将对象转变为xml Object------XML
   Address address = new Address("China", "tianjin", "tanggu",
     "天津科技大学", "100871");
   Person p = new Person(Calendar.getInstance(), "zhansan", address,
     Gender.MALE, "professor");
   // 指定对应的xml文件
   FileOutputStream fw = new FileOutputStream("c:/person.xml");
   Marshaller m = context.createMarshaller();
   // 将对象转换为对应的XML文件
   m.marshal(p, fw);
  } catch (JAXBException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 public static void getObjectFromXML(JAXBContext context) {
  try {
   // 下面代码演示将上面生成的xml转换为对象 XML------Object
   FileReader fr = new FileReader("c:/person.xml");
   Unmarshaller um = context.createUnmarshaller();
   Person p2 = (Person) um.unmarshal(fr);
   System.out.println("Country:" + p2.getAddress().getCountry());
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (JAXBException e) {
   e.printStackTrace();
  }
 }
}
@XmlRootElement
// 表示person是一个根元素
class Person {
 @XmlAttribute
 String name;
 @XmlElement
 Calendar birthDay;
 @XmlElement
 Address address;
 @XmlElement
 Gender gender;
 @XmlElement
 String job;
 public Address getAddress() {
  return address;
 }
 public Person() {
 }
 public Person(Calendar birthDay, String name, Address address,
   Gender gender, String job) {
  this.birthDay = birthDay;
  this.name = name;
  this.address = address;
  this.gender = gender;
  this.job = job;
 }
}
enum Gender {
 MALE("male"), FEMALE("female");
 private String name = null;
 private Gender(String name) {
  this.name = name;
 }
 @Override
 public String toString() {
  return name;
 }
}
class Address {
 @XmlAttribute
 String country;
 @XmlElement
 String state;
 @XmlElement
 String city;
 @XmlElement
 String street;
 String zipcode;
 public Address() {
 }
 public Address(String country, String state, String city, String street,
   String zipcode) {
  this.country = country;
  this.state = state;
  this.city = city;
  this.street = street;
  this.zipcode = zipcode;
 }
 public String getCountry() {
  return country;
 }
}
分享到:
评论

相关推荐

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...

    Java&XML.rar_XML java_xml

    Java和XML是两种在软件开发中广泛使用的技术。XML(eXtensible Markup Language)是一种标记语言,主要用于存储和传输结构化数据,而Java则是一种面向对象的编程语言,广泛应用于构建各种应用程序,包括Web应用、...

    xmljava.zip

    在"xmljava.zip"这个压缩包中,我们可以预想它包含了与使用Java处理XML相关的代码示例或项目。 XML的基本结构由元素、属性、文本内容、注释和处理指令组成。元素是XML文档的核心,它们定义了数据的结构。属性用于为...

    XML Java 异构数据库集成的应用研究

    早起论文,有关XML Java 异构数据库集成的应用研究,写的挺不错。

    xml转json json转xml java工程源码

    java工程源码实现xml和json的互转,工程已包含所jar包:commons-beanutils-1.7.0.jar、commons-collections-3.1.jar、commons-lang-2.5.jar、commons-logging.jar、ezmorph-1.0.3.jar、json-lib-2.4-jdk15.jar、xom-...

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xml

    java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...

    jdom.zip_jdom-1.0.jar包_xml java JDOM

    JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种在Java应用程序中创建、修改和操作XML文档的方法。在Java编程中,JDOM是XML解析器的一种选择,它允许开发者以面向对象的方式...

    Java-xml.rar_XML java_java xml_javaXML.rar_javaxml.r_xml 网站

    此外,"javaxml.r_xml"和"javaxml.r"标签可能指的是Java的JAXB框架,这是一个用于XML绑定的Java标准,可以自动将Java对象映射为XML文档,反之亦然。这大大简化了处理XML数据的过程,尤其是在构建Web服务或需要与XML...

    XML、JAVA、JSON多种方式互相转换

    - 使用Apache的JAXB(Java Architecture for XML Binding):JAXB允许将XML绑定到Java对象,然后再将这些对象转换为JSON。 2. JSON到XML转换: - Jackson库同样提供了反向转换功能,使用`writeValueAsString`方法...

    XML.rar_XML SAX_XML java_dom xml_java xml_java解析xml

    除了Java自带的解析库,还有第三方库如JAXB(Java Architecture for XML Binding)用于对象与XML之间的映射,以及DOM4J、XOM等提供更高级别的接口,简化XML处理。 5. 实战应用: 在实际项目中,根据需求选择合适的...

    XML.rar_XML java_java xml_java xml Document sa_xml

    Java作为一种强大的编程语言,提供了丰富的API来处理XML文档,其中Document对象是核心组件之一,它代表了XML文档的内存中的树形结构。 本文档“XML.rar”主要探讨的是如何使用Java的DOM(Document Object Model)...

    java_xml.rar_XML java_java xml_java 读取 本地文件

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于Java开发中,用于存储和传输结构化数据。在Java中,处理XML文件主要包括读取和写入两个方面。以下将详细介绍Java如何操作XML文件。 一、XML...

    XML.rar_XML java_java call_java xml_xml 读写_xml读写 java

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在各种软件开发中,特别是在Java平台上。XML的设计目标是传输和存储数据,而非显示数据,因此它与HTML(HyperText Markup Language)有着本质...

    java_rean_writer_xml.rar_JSP读写XML_XML java_java Writer xml_java

    在Java Web开发中,XML(eXtensible Markup Language)是一种常见的数据交换格式,用于存储和传输结构化数据。JSP(JavaServer Pages)作为服务器端动态网页技术,经常需要处理XML文件,如读取XML内容、修改XML数据...

    java 解析xml 多级

    Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...

    pom.xml Java资源

    pom.xml Java资源

    xml.rar_XML java_java xml_xml_xml 数据库

    在Java编程中,XML与Java的结合使用是相当常见的,尤其是在数据交换、配置文件、以及与数据库交互等方面。这个"xml.rar"压缩包显然包含了一些关于XML在Java环境中的应用实例。 首先,从标题和描述中我们可以推测,...

    xml.rar_XML java_java xml_xml

    在Java中,XML被广泛应用于配置文件、数据交换、序列化等领域。本篇文章将深入探讨Java中处理XML的相关知识点,主要关注XML文件的读写操作。 首先,我们要了解XML的基本结构。XML文档由一系列元素构成,每个元素都...

    XML JAVA指南

    XML(eXtensible Markup Language)是一种用于标记数据的语言,它在Java开发中扮演着重要角色,用于数据交换、配置存储以及序列化等任务。Java提供了丰富的API来处理XML,如DOM、SAX、StAX和JAXB等解析器。本指南将...

    xml_programming_in_java.rar_XML java_java programming_xml how to

    Java编程语言提供了强大的支持来处理XML,使得开发者可以方便地在Java应用程序中解析、生成、修改和查询XML文档。本教程“XML Programming in Java”深入浅出地介绍了如何在Java环境中有效利用XML。 1. **Java与XML...

Global site tag (gtag.js) - Google Analytics