Java中可以使用多种方式来实现XML序列化与反序列化。
常用的方法有:JAXB, XStream, JDOM, DOM4J, JIBX等。
在使用JAXB进行XML序列化时,我们需要先定义一个Java Bean,然后使用JAXB API将它转换成XML文档。反之,在进行XML反序列化时,我们需要将XML文档解析成Java Bean。
例如,我们可以定义一个Person Bean:
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "person")
public class Person {
private String name;
private int age;
@XmlElement
public String getName() {
return name;
public void setName(String name) {
this.name = name;
@XmlElement
public int getAge() {
return age;
public void setAge(int age) {
this.age = age;
然后使用JAXB API将Person Bean转换成XML:
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
public class JAXBExample {
public static void main(String[] args) throws Exception {
Person person = new Person();
person.setName("John Doe");
person.setAge(30);
JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(person, new File("person.xml"));
jaxbMarshaller.marshal(person, System.out);
最终,我们将得到如下的XML文档:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
<name>John Doe</name>
<age>30</age>
</person>
反之,我们可以使用JAXB API将XML文档反序列化成Java Bean:
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
public class JAXBExample {
public static void main(String[] args) throws Exception {
JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Person person = (Person) jaxbUnmarshaller.unmarshal(new File("person.xml"));
System.out.println(person.getName());
System.out.println(person.getAge());
上面的代码将输出:
John Doe
Liberuman
5年前
XML序列化序列化XML使用的是newXMLSerialize()实例的serializeToString()方法XML反序列化反序列化XML使用的是newDOMParser()实例的parserFr
-