创建Girl.java类
import java.util.List;
import javax.xml.bind.annotation.*; @XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "root")
public class Girl {
@XmlAttribute(name = "type")
private String type;
@XmlElement(name = "name")
private String name; @XmlElement(name = "age")
private String age; @XmlElement(name = "girl")
private List<Girl> girlList; public String toString() {
StringBuilder sb = new StringBuilder();
for (Girl girl : girlList) {
sb.append(girl.toString());
}
return sb.toString();
} public Girl(){
super();
} public Girl(String name,String age){
this.name=name;
this.age=age;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
} public String getAge() {
return age;
} public void setAge(String age) {
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public List<Girl> getGirlList() {
return girlList;
} public void setGirlList(List<Girl> girlList) {
this.girlList = girlList;
} }
编写测试类
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List; import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller; public class TestUnm {
public static void main(String[] args) {
marshaller();
} public static void marshaller() {
try {
JAXBContext jaxbC = JAXBContext.newInstance(Girl.class);
Marshaller ms = jaxbC.createMarshaller();
ms.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
Girl girl=new Girl();
List<Girl> girls=new ArrayList<Girl>();
Girl g1=new Girl("小红", "20");
Girl g2=new Girl("小芳", "16");
Girl g3=new Girl("小丽", "17");
girls.add(g1);
girls.add(g2);
girls.add(g3);
girl.setGirlList(girls);
StringWriter sw=new StringWriter();
ms.marshal(girl, sw);
System.out.println(sw.toString());
createFile("E:\\app\\","test.xml",sw.toString());
} catch (Exception e) {
e.printStackTrace();
}
} public static boolean createFile(String path,String fileName,String fileContent){
boolean bool=false;
File file=new File(path+File.separator+fileName);
try {
if(!file.exists()){
file.createNewFile();
bool=true;
}
writeFileContent(path+File.separator+fileName,fileContent);
} catch (Exception e) {
e.printStackTrace();
}
return bool;
} public static boolean writeFileContent(String path,String fileContent){
boolean bool=false;
FileOutputStream fos=null;
PrintWriter pw=null;
try {
File file=new File(path);
fos=new FileOutputStream(file);
OutputStreamWriter writer=new OutputStreamWriter(fos, "UTF-8");
pw=new PrintWriter(writer);
pw.write(fileContent);
pw.flush();
bool=true;
} catch (Exception e) {
e.printStackTrace();
}
return bool;
} }