JAXB支持注解将XML转化为对象,具体看一个简单的例子:

<?xml version="1.0" encoding="utf-8"?>
<Api>
<algos>
<!-- 算法类型 -->
<algo name="YYFY" text="运营费用">
</algo>
</algos>
</Api>

  XML对应的pojo对象:

package com.yss.aval.aa.util.pojo;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient; /**
* AlgoAPI.xml封装对象
* 此对象仅供解析XML封装数据临时使用
* @author 马向峰
*
*/ @XmlRootElement(name = "Api")
public class AlgoAPIU { /**
* 对应节点 algos
*/
@XmlElement(name = "algos")
private AlgosU algos; @XmlTransient
public AlgosU getAlgos() {
return algos;
} public void setAlgos(AlgosU algos) {
this.algos = algos;
} }

  

package com.yss.aval.aa.util.pojo;

import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient; /**
* 对应algos节点
* 此对象仅供解析XML封装数据临时使用
* @author 马向峰
*
*/
public class AlgosU {
@XmlElement(name = "algo")
private List<AlgoU> list; @XmlTransient
public List<AlgoU> getList() {
return list;
} public void setList(List<AlgoU> list) {
this.list = list;
}
}

  

package com.yss.aval.aa.util.pojo;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient; /**
* 对应AlgoAPI.xml节点的algo
* 此对象仅供解析XML封装数据临时使用
* @author 马向峰
*
*/
public class AlgoU { @XmlAttribute(name = "name")
private String name; @XmlAttribute(name = "text")
private String text; @XmlElement(name="variables")
private VariableAPIU variableAPI; @XmlTransient
public VariableAPIU getVariableAPI() {
return variableAPI;
} public void setVariableAPI(VariableAPIU variableAPI) {
this.variableAPI = variableAPI;
} @XmlTransient
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @XmlTransient
public String getText() {
return text;
} public void setText(String text) {
this.text = text;
} }

  测试类:

package com.yss.aval.aa.util;

import java.io.File;

import com.yss.aval.aa.util.pojo.AlgoAPIU;
import com.yss.framework.api.util.JAXBProcessor; /**
* AlgoAPI.xml解析工具类
*
* @author 马向峰
* @Date 20170712
*/
public class AlgoAPIXMLParse { /**
* 加载并解析AlgoApi.xml
*/
public static AlgoAPIU load() {
JAXBProcessor jProc; try {
jProc = new JAXBProcessor();
AlgoAPIU algoAPI = new AlgoAPIU();
algoAPI = (AlgoAPIU) jProc.unMarshal(algoAPI, new File(
"D:/AlgoApi.xml"));
return algoAPI;
} catch (Exception e) {
e.getStackTrace();
} return null;
} /*
* public static void main(String[] args) { AlgoAPIXMLParse api = new
* AlgoAPIXMLParse(); api.load(); }
*/
}

  特别注意的是 XML的没一个节点对应一个对象。

最新文章

  1. Coursera上一个不错的Java课
  2. android通过BitmapFactory.decodeFile获取图片bitmap报内存溢出的解决办法
  3. Android常见控件— — —Button
  4. Gradle: The New Android Build System
  5. JavaWeb项目开发案例精粹-第2章投票系统-005实体层
  6. git 的版本回滚
  7. Android源码编译过程之九鼎开发板
  8. 移动平台前端开发总结(针对iphone,Android等手机)
  9. Linux Shell 之 我的第一个Shell程序
  10. 约瑟夫问题的java实现
  11. wemall app商城源码android开发MD5加密工具类
  12. java线程(二)
  13. win10ssh连接ubuntu服务器并本地绘图
  14. JNI打通java和c
  15. PHP 操作 Redis 的手册
  16. StanFord ML 笔记 第三部分
  17. 人工智能-机器学习之Selenium(chrome驱动,火狐驱动)
  18. logback-spring.xml配置示例
  19. github issues的操作
  20. 访问 IIS 元数据库失败解决问题的方法

热门文章

  1. linux获取后台进程的控制台数据
  2. RxJava操作符总结之过滤
  3. mac查看端口占用
  4. flask的分页功能
  5. 公网通过代理访问阿里云vpc redis
  6. cmd命令速查手册
  7. 转 【MQTT】在Windows下搭建MQTT服务器
  8. WebStorm初次使用
  9. PHP之十六个魔术方法详细介绍
  10. Android实现夜间模式小结