jaxb能够很好的读写xml,主要用于java对象和xml文件的互转,以下是一个java对象转成xml文件的例子
首先是bean文件,如下:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class TestBean implements Serializable {
@XmlTransient
private static final long serialVersionUID = 1L;
private String name;
private float price;
private int age;
private String add;
/* list的表现形式
* <lists>
* <list></list>
* <list></list>
* </lists>
* */
@XmlElementWrapper(name="DEGREES")
@XmlElements({//表示或的关系,list中内容可以为以下两种类型
@XmlElement(name="Degree",type=Degrees.class),
@XmlElement(name="b",type=String.class)
})
private List<Degrees> degrees;
@XmlJavaTypeAdapter(value=JaxbAdapter.class)
private Date date;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAdd() {
return add;
}
public void setAdd(String add) {
this.add = add;
}
public List<Degrees> getDegrees() {
return degrees;
}
public void setDegrees(List<Degrees> degrees) {
this.degrees = degrees;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String toString() {
// TODO Auto-generated method stub
StringBuilder str = new StringBuilder();
str.append("[name: " + name);
str.append("-- price: " + price);
str.append("-- age: " + age);
str.append("-- add: " + add + "]");
return super.toString();
}
}
写入xml文件中
public class JaxbWriteXml {
public static void main(String args[]) throws JAXBException
{
JAXBContext context = JAXBContext.newInstance(TestBean.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
TestBean bean = createBean();
// TestBean2 bean2 = createBean2();
marshaller.marshal(bean , new File("test.xml"));
}
private static TestBean2 createBean2() {
// TODO Auto-generated method stub
TestBean2 bean2 = new TestBean2();
bean2.setId(02);
bean2.setName("你好!");
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
bean2.setList(list);
return bean2;
}
private static TestBean createBean() {
// TODO Auto-generated method stub
TestBean bean = new TestBean();
bean.setName("张三丰");
bean.setAge(23);
bean.setPrice(new Float(29.7));
bean.setAdd("wenzu road NO.6 nanjing china");
bean.setDate(new Date());
bean.setDegrees(getDegreess());
return bean;
}
private static List<Degrees> getDegreess() {
// TODO Auto-generated method stub
List<Degrees> degrees = new ArrayList<Degrees>();
Degrees degree = new Degrees();
degree.setdID("1");
degree.setdName("大学");
degrees.add(degree);
degree = new Degrees();
degree.setdID("2");
degree.setdName("高中");
degrees.add(degree);
degree = new Degrees();
degree.setdID("3");
degree.setdName("博士");
degrees.add(degree);
return degrees;
}
}
对日期格式进行特殊的处理,需要继承xmladapter,从date类型转成string类型
public class JaxbAdapter extends XmlAdapter<String, Date> {
@Override
public Date unmarshal(String v) throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public String marshal(Date v) throws Exception {
// TODO Auto-generated method stub
SimpleDateFormat simple = new SimpleDateFormat("yyyy/MM/dd");
return simple.format(v);
}
}
生成如下xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<testBean>
<name>张三丰</name>
<price>29.7</price>
<age>23</age>
<add>wenzu road NO.6 nanjing china</add>
<DEGREES>
<Degree>
<dID>1</dID>
<dName>大学</dName>
</Degree>
<Degree>
<dID>2</dID>
<dName>高中</dName>
</Degree>
<Degree>
<dID>3</dID>
<dName>博士</dName>
</Degree>
</DEGREES>
<date>2012/05/09</date>
</testBean>
分享到:
相关推荐
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。JAXB与xml相互转换实例。
使用jaxb生成XML例子,含有例子和注解解析
教你使用jaxb解析xml,介绍了主要的注解,以及核心api
NULL 博文链接:https://luyuwww.iteye.com/blog/1988355
JAXB注解 java 关于xml的注解,自动生成xml文件
使用woodstax+jaxb进行xml的流解析,包括解析类,解析文件,所需jar包,带注解的实体类。提高了解析效率,减少了内存消耗。
JAXB教程 JAXB JAXB插件 里面有很详细的使用说明,看了就知道,JAXB解析XML真的很好用
jaxb 将xml里面的对象转化为一个个类,大大地简化了xml的相关操作。unmarshal marshal
用JAXB生成一个XML文档,一个XML 模式(Schema)用XML语法表达了一个XML文档的结构。J2EE的开发者也许会需要一个符合XML模式的XML文档。Java XML绑定架构(JAXB)提供了一个绑定编译器,xjc,来从一个XML模式中生成Java类...
jaxb解析生成xml例子
我刚写好的 一个简单的小程序 动行里面的read文件 是在idea 中用jaxb 读xml中数据
jaxb xml 转map
JAXB工具类 xml转为java对象 java对象转为xml ,本人亲测,可以使用!!!
使用jaxb 实现xml——bean互转
jaxb将xml转换为对象或将对象转换为xml。测试通过。
Jaxb annotation 使用 Jaxb annotation初步使用
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...
JAXB-XML注解-应用
NULL 博文链接:https://weareold.iteye.com/blog/708543