xml和javabean 的转换有很多工具可以完成,比如常用的xstream,json-lib。。。
这里要了解的是Xmap这个在Nuxeo开源ECM开源框架下的org.nuxeo.common.xmap的jar包工具。
最新版本jar包可以在这里下载 https://maven.nuxeo.org
搜索org.nuxeo.common便可以找到 。说明文档可以到这里查看 http://community.nuxeo.com/api/nuxeo/5.1/javadoc/org/nuxeo/common/
通过注解就直接得到一个Java Bean。
下面贴一个参考的例子:
books.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book no="1">
<title>java是傻逼</title>
<subjects>
<string>java</string>
<string>xml</string>
</subjects>
<price>10</price>
</book>
<book no="2">
<title>c++程序设计</title>
<subjects>
<string>C++</string>
<string>c</string>
</subjects>
<price>10</price>
</book>
</books>
Books.java
package com.hand.entity;
import java.util.ArrayList;
import java.util.List;
import org.nuxeo.common.xmap.annotation.XNodeList;
import org.nuxeo.common.xmap.annotation.XObject;
@XObject("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.java
package com.hand.entity;
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 String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
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;
}
}
Test.java
public class Test {
public static void main(String[] args){
Books books=new Books();
Book book1=new Book();
List< String> sj=new ArrayList< String>();
sj.add("java");
sj.add("xml");
book1.setPrice(10);
book1.setTitle("java是傻逼");
book1.setSubjects(sj);
book1.setNo("1");
books.addBook(book1);
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);
//xml转换javabean
InputStream in = null;
Object[] result;
try {
in = new FileInputStream(new File("xml文件路径"));
result = (Object[]) xmp.loadAll(in);
Books books=(Books)result[0];
System.out.println(books.getBook().get(0).getTitle());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
//javabean转换xml
String xmlStr = null;
try {
xmlStr = xmp.toXML(books);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
附件里面有需要的jar包
分享到:
相关推荐
用来解析xml的第三方工具,非常方便,java语言的
Xmap以注解方式来解析XML语言,可以快速转化成一个JavaBean,使用相当顺手。 这个是org.nuxeo.common的jar包,还有很多有用工具,我还喜欢里面的FileUtils,感觉比apache提供的强大许多啊。 此jar包的详细版本和更高...
NULL 博文链接:https://xujunj2ee.iteye.com/blog/1962617
烽火的手机适配开发手册,介绍android手机适配BS系统的全过程,适用于新手,有开发实例。
matlab开发-离散化输入地图到网格图中查找短路径无冲突xmap。此包将输入映射(图像)转换为网格图
xmap
XMAP移动适配开发手册之对客户端脚本的支持(2009.4.19) 免责说明:本资料来源于网络,如有侵权,请网站管理员删除。
web前端开发.xmap
客户.xmap
为了对来自两个时间序列X和Y数据使用CCM函数xmap() ,必须使用时间延迟坐标方法将它们嵌入相空间中。 这可以使用psembed()函数来完成。 在文件example.m可以看到如何使用这些功能的示例,该文件应生成一个大致类似于...
它将检测XMap并从中迁移数据,包括菜单。 如果成功迁移,则Xmap将被禁用。 所有Xmap插件都将保留 查看菜单项,站点地图和其他相关信息 它迁移成功了吗? 让我们和世界知道:) 你有什么问题吗? 恢复站点的备份,并...
这将是Nginx将为其提供地图的目录。 sudo mkdir -p /var/www/your_domain/html 将your_domain替换为您要使用的域。 这也可以是您的子域的名称。 2-接下来,我们将必须对服务器块授予正确的权限,以允许您的用户...
用于处理Bionano数据的各种脚本。 此脚本集合不需要安装任何其他库,并且支持Python2和Python3。 convert_cmap_version.py Converts between CMAP versions. Outputs a new CMAP Usage: python convert_cmap_...
要求Vim 7.4+这个怎么运作选择区域或简单地将光标放在要转换的位置。 内容通过管道传输到变压器的STDIN并从变压器的STDOUT获得结果用结果替换缓冲区。vimrc 中的配置 " Mac?nmap <D> <Plug> (transform)xmap <D> ...
并在多个系统中应用了:)我不喜欢用STL,所以自已编写了XDynamicArray,XArray,XMap,XStack,XSet等模板类,还有XByteBuffer,XInputByteBuffer动态缓冲区数据处类。还有XCRC,XHexCode,XMD5,XBase64等类。自我感觉蛮...
计算机网络知识点梳理(适合初学者和考研学子)
Xmap2.0发布 节点分析 ZoomEye“500节点计划” IPv6测绘 ZoomEye全球蜜罐识别
计算机组成原理知识点梳理(适用于初学者和考研学子)
加载.xrec和.xmap以逐步进行并目视验证计划的打印。 事件日志解析 加载EventLog.txt以查看已用配方的列表以及打印周期时间的图形细分。 该应用程序具有最大的增长潜力,因为日志中有大量可用信息。 公开要求! 数据...