`
望月怀远
  • 浏览: 57797 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

运用Xmap将xml数据转换成javabean

阅读更多

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包
分享到:
评论
1 楼 Hai_Feng1108 2012-05-16  

相关推荐

    XMAP 教程(很难下载到的)

    ### XMAP 教程知识点详解 #### 一、概述 XMap是一款专为XML文档与Java对象之间映射设计的库。它通过在Java对象上使用注解的方式,实现XML元素...通过学习这些内容,可以有效地使用XMap进行XML与Java对象之间的转换。

    xmap终于出炉了

    另一个标签“工具”则进一步确认了xmap是一个实用程序,可能是用于数据可视化、地图服务、地理信息系统(GIS)或者其他与地图和地理位置相关的开发工作。这类工具通常能帮助开发者更有效地处理地图数据,提升应用的...

    org.nuxeo.common的1.0版本jar包(包含Xmap)

    Xmap以注解方式来解析XML语言,可以快速转化成一个JavaBean,使用相当顺手。 这个是org.nuxeo.common的jar包,还有很多有用工具,我还喜欢里面的FileUtils,感觉比apache提供的强大许多啊。 此jar包的详细版本和更高...

    xmap

    本文将深入探讨xmap在JavaScript环境下的实现原理、功能特性以及其在实际应用中的价值。 JavaScript,作为一种广泛应用于Web开发的脚本语言,通常用于客户端交互,但随着Node.js的出现,JavaScript也可以在服务器端...

    matlab开发-离散化输入地图到网格图中查找短路径无冲突xmap

    本项目提供的工具集专注于将输入地图(通常是图像形式)转换成网格图,并在此基础上实现无冲突的最短路径搜索。以下是相关的关键知识点: 1. **图像处理**: - 输入地图通常为二维图像,可以是灰度图像或彩色图像...

    web前端开发.xmap

    web前端开发.xmap

    基于EPICS的硬X微聚焦实验站数据采集系统.pdf

    例如,xMAP和Si(Li)探测器用于X射线吸收光谱分析,并将收集到的数据记录下来,这些数据用于后续的数据处理和分析。 5. 网络通讯:EPICS使用Channel Access(CA)技术实现不同系统和组件之间的网络通信。这允许系统...

    matlab代码影响-xmap:收敛交叉映射

    为了对来自两个时间序列X和Y数据使用CCM函数xmap() ,必须使用时间延迟坐标方法将它们嵌入相空间中。 这可以使用psembed()函数来完成。 在文件example.m可以看到如何使用这些功能的示例,该文件应生成一个大致类似于...

    Infromatica B2B Data Transformation 9.5

    该版本还支持层次结构到关系的映射,这意味着能够将非结构化的数据转换为结构化的数据库格式,这对于数据分析和决策支持至关重要。此外,它允许重复利用Informatica平台的对象、用户界面习惯和方法,进一步降低了...

    图像处理常用函数(zz).pdf

    dither函数主要用于将RGB图像通过抖动处理转化为索引图像。抖动技术在颜色有限的情况下,通过选择最接近的颜色来代替原有的颜色,以实现色彩过渡的平滑。对于RGB图像,dither函数可以生成具有类似视觉效果的低色深...

    java个人简历

    - 熟悉xmap、xsl、uixml、xpath等XML相关技术,有助于数据交换和处理。 2. **项目经验**: - **捷途物流管理系统**:此项目运用了Js、JSP、Ajax、Hibernate、Struts和Spring,提升了物流公司的运营效率和决策能力...

    joomla2.5 网站地图插件

    `pkg_xmap.xml` 文件是Joomla扩展的安装包文件,包含了插件的元数据和安装指令。安装时,只需将此文件上传到Joomla网站的“extensions”目录,然后通过后台管理界面进行安装。安装完成后,可以在“插件管理器”中...

    打造世界领先网络空间测绘能力.pdf

    通过数据合作和自主爬虫技术,探测引擎Xmap-IPv6版本支持所有ZoomEye IPv4的端口协议,并且平均每周增加约200万条数据。 总结来说,网络空间测绘是一个动态且不断发展的领域,它需要不断的技术创新和策略调整以应对...

    OSMap:OSMap是将站点地图添加到Joomla站点的最简单方法

    它将检测XMap并从中迁移数据,包括菜单。 如果成功迁移,则Xmap将被禁用。 所有Xmap插件都将保留 查看菜单项,站点地图和其他相关信息 它迁移成功了吗? 让我们和世界知道:) 你有什么问题吗? 恢复站点的备份,并...

    计算机组成原理知识点梳理(适用于初学者和考研学子)

    - 数据表示:二进制、八进制、十进制、十六进制之间的转换,以及浮点数的表示方式。 - 计算机的五大部件:运算器、控制器、存储器、输入设备和输出设备。 2. **运算器** - 算术逻辑单元(ALU):负责执行基本的...

    joomla网站地图

    5. 将生成的网站地图XML文件上传到网站根目录,并在谷歌Webmaster Tools和百度站长平台提交,以通知搜索引擎你的网站已更新了网站地图。 通过以上步骤,你可以有效地优化Joomla网站的搜索引擎优化(SEO),提高其在...

    pl3xmapnginx:为我的项目回购

    这将是Nginx将为其提供地图的目录。 sudo mkdir -p /var/www/your_domain/html 将your_domain替换为您要使用的域。 这也可以是您的子域的名称。 2-接下来,我们将必须对服务器块授予正确的权限,以允许您的用户...

Global site tag (gtag.js) - Google Analytics