package test; import java.util.ArrayList; import java.util.List; import org.nuxeo.common.xmap.annotation.XNode; import org.nuxeo.common.xmap.annotation.XNodeList; import org.nuxeo.common.xmap.annotation.XObject; /** * Book 实体对象,此处用XMap注解 * @author Administrator * */ @XObject public class Book { @XNode("title") private String title; @XNode("@no") private String no; @XNodeList(value = "subject", type = ArrayList.class, componentType = String.class) private List<String> subjects; @XNode("price") private int price; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public List<String> getSubjects() { return subjects; } public void setSubjects(List<String> subjects) { this.subjects = subjects; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getNo() { return no; } public void setNo(String no) { this.no = no; } } /**==================================================**/ package test; import java.util.ArrayList; import java.util.List; import org.nuxeo.common.xmap.annotation.XNodeList; import org.nuxeo.common.xmap.annotation.XObject; /** * 图书对象集合类 * @author zhouyu * */ @XObject(value = "books") public class Books { @XNodeList(value = "book", type = ArrayList.class, componentType = Book.class) private List<Book> book; public List<Book> getBook() { return book; } public void setBook(List<Book> book) { this.book = book; } public void addBook(Book b){ if(book==null){ book=new ArrayList<Book>(); } book.add(b); } } /**==================================================**/ package test; import java.util.ArrayList; import java.util.List; import org.nuxeo.common.xmap.XMap; import com.io.IoUtils; /** * 从对象到xml转换 * @author zhouyu * */ public class ObjectToXmlDemo { public static void main(String[] args) { try { //声明一组书的根节点 Books books=new Books(); //声明一本书 Book book=new Book(); //书的类型 List<String> sj = new ArrayList<String>(); sj.add("java"); sj.add("xml"); //设置书节点的属性 book.setPrice(10); book.setTitle("java是傻逼"); book.setSubjects(sj); book.setNo("1"); //将书节点添加到跟节点 books.addBook(book); //声明一本书 Book book2=new Book(); //书的类型 List<String> sj2=new ArrayList<String>(); sj2.add("C++"); sj2.add("c"); //设置书节点的属性 book2.setPrice(10); book2.setTitle("c++程序设计"); book2.setSubjects(sj2); book2.setNo("2"); //将书节点添加到跟节点 books.addBook(book2); XMap xmp = new XMap(); xmp.register(Books.class); List<String> filters = new ArrayList<String>(); String content = xmp.asXmlString(books, "UTF-8", filters, true); IoUtils.WriteFile(content, "UTF-8", "books.xml"); } catch (Exception e) { e.printStackTrace(); } } } /**==================================================**/ package test; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.net.URL; import org.nuxeo.common.xmap.XMap; public class XmlToObjectDemo { public static void main(String[] args) { try { XMap xmp = new XMap(); xmp.register(Books.class); //URL url = new File("books.xml").toURL(); InputStream in = new FileInputStream(new File("books.xml")); Object[] result = (Object[]) xmp.loadAll(in); Books books = (Books) result[0]; for(int i = 0 ; i < books.getBook().size() ; i++) { Book book = books.getBook().get(i); System.out.println(book.getNo()); System.out.println(book.getPrice()); System.out.println(book.getTitle()); System.out.println(book.getSubjects().get(i)); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /**==================================================**/ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <books> <book no="1"> <title>java是傻逼</title> <subject>java</subject> <subject>xml</subject> <price>10</price> </book> <book no="2"> <title>c++程序设计</title> <subject>C++</subject> <subject>c</subject> <price>10</price> </book> </books>

xml和java Bean的直接转换,Xmap相关推荐

  1. java xmap_XML和Java Bean的互相转换攻略 【XMAP】

    XML和Java Bean的互相转换攻略  XML和Java Bean互相转换是一个很有用的功能,因为两者有着前后合作的关系,但解析的过程比较痛苦.下面介绍如何进行XML和Java Bean的互相转换 ...

  2. 通过xml生成java Bean

    第一步  下载Trang并解压zip文件 Trang 是一种命令行的可以XML生成XSD的工具. 从http://www.thaiopensource.com/relaxng/trang.html 上 ...

  3. java xmap_xml和java Bean的直接转换,Xmap

    1.XStream,XStream是codehaus上的一个开源项目,用于将Javabean serialize为xml格式,以及从xml中生成javabean. 2.castor.xmlbeans, ...

  4. java bean与xml转换_Java Bean与xml互相转换的方法分析

    本文实例讲述了Java Bean与xml互相转换的方法.分享给大家供大家参考,具体如下: XML和Java Bean互相转换是一个很有用的功能,因为两者有着前后合作的关系,但解析的过程比较痛苦.下面介 ...

  5. java xmap_转:使用XMAP完成JavaBean和XML之间转换

    XML和Java Bean互相转换是一个很有用的功能,因为两者有着前后合作的关系,但解析的过程比较痛苦.下面介绍如何进行XML和Java Bean的互相转换. 最近项目中用到了xml和java bea ...

  6. xml与java对象转换 -- XStreamAlias

    @XStreamAlias使用 一. 特点: 简化的API;  无映射文件;  高性能,低内存占用;  整洁的XML;  不需要修改对象;支持内部私有字段,不需要setter/getter方法  提供 ...

  7. JAVA Bean和XML之间的相互转换 - XStream简单入门

    JAVA Bean和XML之间的相互转换 - XStream简单入门 背景介绍 XStream的简介 注解简介 应用实例 背景介绍 我们在工作中经常 遇到文件解析为数据或者数据转化为xml文件的情况, ...

  8. 使用castor实现xml和java对象的转换

    对于xml和java对象的转换这里用castor进行转换,当然还有别的方式 方式一:castor和xml映射文件配合 首先提供需要解析的XML(内容不重要,重要的是格式) <?xml versi ...

  9. webservice xsd.exe根据xml生成xsd。然后根据xsd生成java bean

    2019独角兽企业重金招聘Python工程师标准>>> webservice xsd.exe根据xml生成xsd.然后根据xsd生成java bean 转载于:https://my. ...

最新文章

  1. tar自动打包指定文件夹中的文件到指定目录
  2. css中position的几个值
  3. c4android资源,OpenC4Android开发环境搭.doc
  4. 疫情过后,对医疗AI行业带来的机遇
  5. javascript onsubmit返回false仍然能提交_JavaScript对象-Get和Put
  6. The Preliminary Contest for ICPC Asia Nanjing 2019 B. super_log (广义欧拉降幂)
  7. 【推荐】介绍两款Windows资源管理器,Q-Dir 与 FreeCommander XE(比TotalCommander更易用的免费资源管理器)...
  8. python的模块提供了许多文件处理方法_详解使用Python处理文件目录的相关方法
  9. U盘文件系统无法识别,数据怎么恢复?
  10. Java(五)异常处理,异常参数,自定义异常,嵌套异常
  11. php mssql扩展SQL查询中文字段名解决方法
  12. 内部通信服务Factory(WCF)
  13. 计算机软件安装包后缀名,软件安装包程序是什么
  14. 【华为机试 Python实现】VLAN资源池
  15. 【jQuery】货币格式化
  16. 三种交换技术及其比较
  17. 研究型论文框架及阅读文献方法
  18. python正则去掉重复单词_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 | 学步园...
  19. linux syscall
  20. gltf中的bufferViews,accessors和buffers

热门文章

  1. iPad 使用技巧:欧路词典
  2. 浅谈H5捕鱼游戏设计
  3. 滋补新势力、新动能、新消费、新销路、新资源-第6届上海燕博会与您相约上海,共创未来!
  4. set-valued function called in context that cannot accept a set
  5. android加载长图宽度自适应,Android使用Glide加载超长图
  6. Python 的itchat 的微信文件传输助手和朋友性别,签名,所在城市分析
  7. 源码环境下跟进MO通话流程(涉及到其中每一个方法的跳转)
  8. 一文详解神经网络结构搜索(NAS)
  9. 什么是存储虚拟化?为什么需要它?
  10. Python SqlAlchemy+pymysql + MariaDB简单使用