Marshaller根据对象生成xml文件
创建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文件的更多相关文章
- Android 使用xml序列化器生成xml文件
在<Android 生成xml文件>一文中使用流的形式写入xml格式文件,但是存在一定的问题,那就是在短信内容中不能出现<>之类的括号,本文使用xml序列化器来解决 xml序列 ...
- C#对象与XMl文件之间的相互转换
C#提供三种序列化方式,分别为: 1.是使用BinaryFormatter进行串行化: 2.使用SoapFormatter进行串行化: 3.使用XmlSerializer进行串行化.其中对于Binar ...
- 视频播放实时记录日志并生成XML文件
需求描述: 在JWPlayer视频播放过程中,要求实时记录视频观看者播放.暂停的时间,并记录从暂停到下一次播放时所经过的时间.将所有记录保存为XML文件,以方便数据库的后续使用. 实现过程: 尝试1: ...
- 使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
- 使用XMl序列化器生成xml文件
生成XML文件 创建几个虚拟的短信对象,存在list中 备份数据通常都是备份至sd卡 使用StringBuffer拼接字符串 把整个xml文件所有节点append到sb对象里 sb.append(&q ...
- 使用Pull解析器生成XML文件和读取xml文件
有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...
- 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析
首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...
- C#对象与XMl文件之间的相互转换(转)
本文是对C#中对象与XMl文件之间的相互转换进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使 ...
- 使用XPath对象解析xml文件
使用XPath对象解析xml文件 1.DocumentBuilderFactory类 工厂API,使应用程序能从XML文档获取生成DOM对象树的解析器 其构造方法受保护,用newInstance() ...
随机推荐
- bzoj2325
题解: 树链剖分 和普通的树链剖分不一样,这里的线段树不只是要记录x-y的和 而是要记录x左到y左,x左到y右,x右到y左,x右到y右 然后就可以了 代码: #include<bits/stdc ...
- Windows 10 安装 Docker
下载Docker For Windows 地址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...
- 20181009-7 选题 Scrum立会报告+燃尽图 06
Scrum立会报告+燃尽图(06)选题 此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2196 一.小组介绍 组长:刘莹莹 ...
- ROS会议 ROSCon 2017
----ROSCon2012-2017----来源链接:https://roscon.ros.org 近三年ROSCon(2015-2017)都会将会议视频录像和文档公开~以下为机 ...
- BZOJ3296:Learning Languages(简单并查集)
3296: [USACO2011 Open] Learning Languages Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 436 Solved ...
- HDU 1285:确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 最佳C/C++编辑器 source insight3
C/C++嵌入式代码编辑器source insight3下载地址 http://www.sourceinsight.com/eval.html 注册码:SI3US-361500-17409
- 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<= ...
- vs2005新建项目中没有ASP.NET WEB应用程序的解决方法
在vs2003的年代,我们可以在项目模板中选择创建"asp.net web应用程序",可是到vs2005中,就变成了创建网站,原有的创建"asp.net web应用程序& ...
- win10 下ie11安装flash debuger (install flashplayer debuger on win10 64bit)
1不能安装的现象 由于win10 ie11 内置flash 微软不让用户自己手动更新ie11的flash以及安装flash debugger ,这怕是让还在用 flex 开发的大胸弟们很头疼 ...