首页 > 代码库 > JAXB解析XML为对象
JAXB解析XML为对象
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的没一个节点对应一个对象。
JAXB解析XML为对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。