- 浏览: 17657 次
- 性别:
- 来自: 上海
最新评论
最近项目中用到了xml和java bean的转换
用到xml的时候我们需要遍历解析。。。然后将解析的值放入声明好的java bean,过程很痛苦,结果很美好
我们能不能直接从xml转化到java bean呢,或者直接成java bean转化到xml呢?
答案是OK的
使用jar包:org.heibo.xbean
写个小例子
XML
Books类
Book类
测试类:
运行上面这个类就可以生成开头所看见的那个XML的内容
解析xml
数据就完全autowire by name进入到了bean,某些情况下很好用(xml很整齐,每个节点的内容都一样,固定)
用到xml的时候我们需要遍历解析。。。然后将解析的值放入声明好的java bean,过程很痛苦,结果很美好
我们能不能直接从xml转化到java bean呢,或者直接成java bean转化到xml呢?
答案是OK的
使用jar包:org.heibo.xbean
写个小例子
XML
- <?xml version="1.0" encoding="UTF-8"?>
- <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 version="1.0" encoding="UTF-8"?>
- <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 version="1.0" encoding="UTF-8"?> <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>
Books类
- import java.util.ArrayList;
- import java.util.List;
- import org.nuxeo.common.xmap.annotation.XNodeList;
- import org.nuxeo.common.xmap.annotation.XObject;
- @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);
- }
- }
- import java.util.ArrayList;
- import java.util.List;
- import org.nuxeo.common.xmap.annotation.XNodeList;
- import org.nuxeo.common.xmap.annotation.XObject;
- @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);
- }
- }
import java.util.ArrayList; import java.util.List; import org.nuxeo.common.xmap.annotation.XNodeList; import org.nuxeo.common.xmap.annotation.XObject; @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); } }
Book类
- 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;
- @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;
- }
- }
- 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;
- @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;
- }
- }
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; @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; } }
测试类:
- import java.util.ArrayList;
- import java.util.List;
- import org.nuxeo.common.xmap.XMap;
- public class XmapTest {
- 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>();
- System.out.println(xmp.asXmlString(books, "UTF-8", filters, true));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- import java.util.ArrayList;
- import java.util.List;
- import org.nuxeo.common.xmap.XMap;
- public class XmapTest {
- 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>();
- System.out.println(xmp.asXmlString(books, "UTF-8", filters, true));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
import java.util.ArrayList; import java.util.List; import org.nuxeo.common.xmap.XMap; public class XmapTest { 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>(); System.out.println(xmp.asXmlString(books, "UTF-8", filters, true)); } catch (Exception e) { e.printStackTrace(); } } }
运行上面这个类就可以生成开头所看见的那个XML的内容
解析xml
- xmap.register(Books.class);
- URL url = new File("book.xml").toURL();
- InputStream in = new FileInputStream(new File("book.xml"));
- Object[] result = (Object[]) xmap.loadAll(in);
- Books books=(Books)result[0];
- xmap.register(Books.class);
- URL url = new File("book.xml").toURL();
- InputStream in = new FileInputStream(new File("book.xml"));
- Object[] result = (Object[]) xmap.loadAll(in);
- Books books=(Books)result[0];
xmap.register(Books.class); URL url = new File("book.xml").toURL(); InputStream in = new FileInputStream(new File("book.xml")); Object[] result = (Object[]) xmap.loadAll(in); Books books=(Books)result[0];
数据就完全autowire by name进入到了bean,某些情况下很好用(xml很整齐,每个节点的内容都一样,固定)
相关推荐
xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...
它可以将Java对象转换为XML文档,也可以将XML文档转换为Java对象。 pom引用 <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.20 实体类和测试类详见博客 ...
将对象(java bean)转换为xml字符串
NULL 博文链接:https://luyuwww.iteye.com/blog/1988355
java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类
实现javabean转换xml,以及xml转换javabean,,尤其是做数据对接时,使用webservice时,很方便
一个小demo展示xml的两种解析方式和四种解析方法,以及使用XStream进行javaBean与xml、json之间的转换
将一个java对象转换为xml文件,或者将一个xml文件转换为一个java对象。 (有人说需要jaxws-api-2.0.jar这个包,但是我做这个例子时没有用的,不过我还是把它附上,备用)
XML、JAVA、JSON多种方式互相转换,灵活运用高效
企业级应用 java 解析多级xml 多么复杂的都可以, 一个类,一个jar 包,非常实用,希望大家顶起..
作为备忘录,实现xml转换成xsd,然后由xsd转换到javabean,最后在xml和javabean之间互相转换。 说明网址:http://blog.csdn.net/beanjoy/article/details/38272051
xml与javabean之间的相互转换,很方便,可快速入门,导入MyEclipse即可使用
主要介绍了Java Bean与xml互相转换的方法,结合实例形式分析了java bean与xml转换的原理与相关操作技巧,需要的朋友可以参考下
用jox对xml与javabean进行转换,对过调用工具类BeanXmlMapping的fromXml()与toXml()方法进行相互转换。
主要用于开发中常见的xml与javabean之间的数据互转,减少重复代码...现不支持bean转换成xml时不指定字段所对应xml元素结点名称的情况,所有的字段必需指定生成xml时所对应的结点名称(即使想字段名就是xml结点属性名)。
xml转javaBean,javaBean转xml,xml标签大小写问题,CDATA的生成,以及对xml特殊符号的处理
NULL 博文链接:https://fhqibjg.iteye.com/blog/1310569
链接数据库后生成对应的实体、vo,service,xml,基础sql文件
xstream-1.4.3 java bean xml 转换 java bean json 转换 包括lib src doc
java.beans.beancontext 提供与 bean 上下文有关的类和接口。 java.io 通过数据流、序列化和文件系统提供系统输入和输出。 java.lang 提供利用 Java 编程语言进行程序设计的基础类。 java.lang.annotation 为 ...