- 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>
本文转自:http://blog.csdn.net/xiaoyu411502/article/details/5566398