`

XML、JavaBean转换

    博客分类:
  • Java
阅读更多
引用
转自http://lywybo.iteye.com/blog/468556#comments

最近项目中用到了xml和java bean的转换
用到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>


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);   
    }   
}  


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.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];  


数据就完全autowire by name进入到了bean,某些情况下很好用(xml很整齐,每个节点的内容都一样,固定)
分享到:
评论

相关推荐

    javabean到XML的转换

    将JavaBean转换为XML是常见的数据序列化方式,有助于在不同系统间共享和存储对象状态。 在Java中,有多种方法可以实现JavaBean到XML的转换,包括使用API如JAXB(Java Architecture for XML Binding)、DOM...

    javabean和xml互相转换工具类以及jar包

    这个类可能包含静态方法,如`beanToXml(JavaBean bean)`用于将JavaBean转换为XML字符串,以及`xmlToBean(String xml)`用于将XML字符串反向转换回JavaBean。使用这样的工具类可以使代码更加简洁,提高代码复用性。 ...

    利用JAXB进行xml和javabean之间转换

    而JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许我们轻松地在Java对象(javabean)和XML文档之间进行转换。通过JAXB,开发者可以避免手动编写XML解析和序列化代码,极大地提高了开发...

    javabean 与 xml文件转换

    之后,我们可以使用以下代码将JavaBean转换为XML: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; public class BeanToXmlConverter { public static void main(String[] args)...

    javabean生成xml.xml转换成javabean的工具类

    javabean生成xml.xml转换成javabean的工具类

    javabean 转换 xml映射文件工具

    JavaBean到XML映射文件工具是一种实用程序,它允许开发者将Java对象(即JavaBean)的数据转换成XML格式的文件,反之亦然。这个工具在处理数据交换、持久化或配置文件时非常有用,特别是在使用像Castor这样的框架时。...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    本文将深入探讨XML与JavaBean之间的转换、XML标签的大小写规则、XML特殊符号的处理以及CDATA的生成。 1. XML转JavaBean: 在Java编程中,XML数据经常需要转换为Java对象以便于操作。这一过程通常通过XML解析器来...

    xml与JavaBean互相转换的好工具---Xstream

    xml与JavaBean互相转换的好工具---Xstream,能够很方便的实现xml与JavaBean之间的转换,这在系统之间进行信息交互是非常方便的

    xstream 让javabean和xml互相转换

    这篇博客“xstream 让javabean和xml互相转换”深入探讨了如何利用XStream库实现这一功能。 XStream的核心思想是通过反射机制,将Java对象的字段映射到XML的元素和属性,以及反向操作将XML解析回Java对象。它的优势...

    xml 与JAVAbean转换

    **工具** 如Apache Commons BeanUtils库也可以用来在JavaBean和Map对象之间进行转换,虽然它不直接处理XML,但可以作为进一步转换的基础。此外,一些IDE如Eclipse和IntelliJ IDEA提供了内置的功能来自动生成JavaBean...

    xml与javabean的转换

    在使用Jox进行XML和JavaBean转换时,需要注意以下几点: 1. **属性映射**:确保XML元素和JavaBean属性之间有正确的映射关系。这可以通过在JavaBean上使用特定的注解来实现,或者在使用`BeanXmlMapping`之前提供一个...

    JavaBean 转换为xml的三种方式比较

    将JavaBean转换为XML是常见的数据交换格式转换需求,特别是在Web服务、数据存储或配置文件中。本文将深入探讨三种将JavaBean转换为XML的方法,并进行比较。 1. **JavaBeans API的XMLEncoder** XMLEncoder是...

    XML和javaBean的转换

    轻松的实现javaBean到XML的转换,和XML到javaBean的转换

    xml、xsd、javabean的互相转换

    作为备忘录,实现xml转换成xsd,然后由xsd转换到javabean,最后在xml和javabean之间互相转换。 说明网址:http://blog.csdn.net/beanjoy/article/details/38272051

    xml与javabean之间的相互转换,很方便,导入即可使用

    `toXML()` 方法将JavaBean对象转换成XML字符串,而 `fromXML()` 方法则相反,将XML字符串转换回JavaBean对象。 XStream库还支持处理复杂的Java对象结构,如集合、嵌套对象等,无需额外的配置。同时,它还提供了对...

    xml与javabean的相互转换

    在Java开发中,XML与JavaBean之间的转换是非常常见的需求,例如在序列化和反序列化过程中。以下将详细解释这两种数据格式间的转换方法。 1. XML到JavaBean的转换: - 使用JAXB(Java Architecture for XML Binding...

    javabean和xml互转详细文档+例子

    在实际项目中,有时我们需要在JavaBean和XML之间进行转换,以便于数据的持久化、网络传输或者跨平台交互。本篇文档将详细介绍如何使用jox-1.17b3.jar库来实现这一转换过程,并提供具体的例子。 1. **JavaBean到XML...

    JavaBean和xml转换

    JavaBean和XML转换是Java开发中的一个重要主题,特别是在数据交换和持久化方面。XML(可扩展标记语言)因其结构化和人类可读性而广泛用于存储和传输数据,而JavaBean则是一种符合Java编程规范的对象,用于封装业务...

    用JOX实现xml和javabean的相互转换

    这个库简化了XML解析和Java对象之间的转换过程,使得开发人员能够更便捷地处理XML数据,特别是在需要在不同系统间传输Java对象或者在Web服务中使用XML作为数据交换格式时。 在本文中,我们首先看到一个Java Bean的...

Global site tag (gtag.js) - Google Analytics