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 subjects;
@XNode("price")
private int price;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List getSubjects() {
return subjects;
}
public void setSubjects(List 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;
public List getBook() {
return book;
}
public void setBook(List book) {
this.book = book;
}
public void addBook(Book b){
if(book==null){
book=new ArrayList();
}
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 sj = new ArrayList();
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 sj2=new ArrayList();
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 filters = new ArrayList();
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();
}
}
}
/**==================================================**/
java是傻逼java
xml
10
c++程序设计C++
c
10