创建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;
} }

  

Marshaller根据对象生成xml文件的更多相关文章

  1. Android 使用xml序列化器生成xml文件

    在<Android 生成xml文件>一文中使用流的形式写入xml格式文件,但是存在一定的问题,那就是在短信内容中不能出现<>之类的括号,本文使用xml序列化器来解决 xml序列 ...

  2. C#对象与XMl文件之间的相互转换

    C#提供三种序列化方式,分别为: 1.是使用BinaryFormatter进行串行化: 2.使用SoapFormatter进行串行化: 3.使用XmlSerializer进行串行化.其中对于Binar ...

  3. 视频播放实时记录日志并生成XML文件

    需求描述: 在JWPlayer视频播放过程中,要求实时记录视频观看者播放.暂停的时间,并记录从暂停到下一次播放时所经过的时间.将所有记录保存为XML文件,以方便数据库的后续使用. 实现过程: 尝试1: ...

  4. 使用XML序列化器生成XML文件和利用pull解析XML文件

    首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...

  5. 使用XMl序列化器生成xml文件

    生成XML文件 创建几个虚拟的短信对象,存在list中 备份数据通常都是备份至sd卡 使用StringBuffer拼接字符串 把整个xml文件所有节点append到sb对象里 sb.append(&q ...

  6. 使用Pull解析器生成XML文件和读取xml文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  7. 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析

    首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...

  8. C#对象与XMl文件之间的相互转换(转)

    本文是对C#中对象与XMl文件之间的相互转换进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使 ...

  9. 使用XPath对象解析xml文件

    使用XPath对象解析xml文件 1.DocumentBuilderFactory类  工厂API,使应用程序能从XML文档获取生成DOM对象树的解析器 其构造方法受保护,用newInstance() ...

随机推荐

  1. bzoj2325

    题解: 树链剖分 和普通的树链剖分不一样,这里的线段树不只是要记录x-y的和 而是要记录x左到y左,x左到y右,x右到y左,x右到y右 然后就可以了 代码: #include<bits/stdc ...

  2. Windows 10 安装 Docker

    下载Docker For Windows 地址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...

  3. 20181009-7 选题 Scrum立会报告+燃尽图 06

    Scrum立会报告+燃尽图(06)选题 此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2196 一.小组介绍 组长:刘莹莹 ...

  4. ROS会议 ROSCon 2017

    ----ROSCon2012-2017----来源链接:https://roscon.ros.org           近三年ROSCon(2015-2017)都会将会议视频录像和文档公开~以下为机 ...

  5. BZOJ3296:Learning Languages(简单并查集)

    3296: [USACO2011 Open] Learning Languages Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 436  Solved ...

  6. HDU 1285:确定比赛名次(拓扑排序)

    确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. 最佳C/C++编辑器 source insight3

    C/C++嵌入式代码编辑器source insight3下载地址 http://www.sourceinsight.com/eval.html 注册码:SI3US-361500-17409

  8. 51nod 算法马拉松4 B递归(YY)

    递归   基准时间限制:1 秒 空间限制:131072 KB 分值: 80 函数f(n,m) { 若n=1或m=1返回a[n][m]; 返回f(n-1,m)异或f(n,m-1); } 读入2<= ...

  9. vs2005新建项目中没有ASP.NET WEB应用程序的解决方法

    在vs2003的年代,我们可以在项目模板中选择创建"asp.net web应用程序",可是到vs2005中,就变成了创建网站,原有的创建"asp.net web应用程序& ...

  10. win10 下ie11安装flash debuger (install flashplayer debuger on win10 64bit)

    1不能安装的现象 由于win10  ie11  内置flash  微软不让用户自己手动更新ie11的flash以及安装flash  debugger  ,这怕是让还在用 flex 开发的大胸弟们很头疼 ...