1.首先创建一个Customer对象;(Customer.java)
2.其次用Customer对象生成XML文件(Object2XmlDemo.java)
3.生成出来的文件格式;
package per.tag;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
/**
* 将对象转化为Xml格式保存
*/
@XmlRootElement
public class Customer {
int id;
int age;
String[] names;
public Customer(){
}
public Customer(int id, int age, String[] names) {
super();
this.id = id;
this.age = age;
this.names = names;
}
//注意这两个标签的使用
@XmlElementWrapper(name="allnames")
@XmlElement(name="myname")
public String[] getNames() {
return names;
}
public void setNames(String[] names) {
this.names = names;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "Customer [id = " + id + ",names = " + names + ",age = " + age + "]";
}
}
//转换的文件
package per.tag;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
public class Object2XmlDemo {
public static void main(String[] args) throws Exception {
String[] string = {"test","zhangsan"};
Customer custom = new Customer(1,25,string);
File file = new File("d:\\customer.xml");
JAXBContext context = JAXBContext.newInstance(Customer.class);
Marshaller shaller = context.createMarshaller();
shaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);
shaller.marshal(custom, file); //输出到文件d:\\customer.xml
shaller.marshal(custom, System.out);//输出到控制台
}
}
转换出来的文件如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer>
<age>25</age>
<id>1</id>
<allnames>
<myname>test</myname>
<myname>zhangsan</myname>
</allnames>
</customer>