JAXB方式读写xml实例
来源:互联网 发布:nginx 泛域名配置 编辑:程序博客网 时间:2024/05/16 18:59
<pre class="html" name="code">在工作中遇到了需要读取xml的业务,发现原代码使用的是dom4j,因为这个xml的节点层次比较深,原代码显得杂乱无章,因为我修改了代码使用了jaxb读取xmljaxb 的优势在于他可以以javabean 注入的方式映射到xml,代码干净利落。我写了一个demo,我们先看下xml文件的结构
<ArticleData><article><title>super</title><email>xubing@thunisoft.com</email><date>2016/07/14</date><articleChild><super>super</super></articleChild></article><test>我是test</test><ee></ee></ArticleData>
首先 ArticleDate 节点对应的javabean 根节点必须用@XmlRootElement(name="ArticleDate") 这个注入
package com.superbing.thunisoft.ajaxb.bean;import java.util.ArrayList;import java.util.List;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name="ArticleData")public class ArticleData {private List<Article> article = new ArrayList<Article>();private String test;private String wca;public final String getWca() {return wca;}public final void setWca(String wca) {this.wca = wca;}public final String getTest() {return test;}public final void setTest(String test) {this.test = test;}public final List<Article> getArticle() {return article;}public final void setArticle(List<Article> article) {this.article = article;}}
接下来是Article 节点 这里有一个@XmlElement(name="super") 这里 name = super 是一个别名的性质,child这个节点对应的xml里的节点可以叫super 而不是child
package com.superbing.thunisoft.ajaxb.bean;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;public class ArticleChild {private String child;@XmlElement(name="super")public final String getChild() {return child;}public final void setChild(String child) {this.child = child.trim();}}
最后是 Article 节点
package com.superbing.thunisoft.ajaxb.bean;import java.util.ArrayList;import java.util.List;public class Article {private String title;private String email;private String date;List<ArticleChild> articleChild = new ArrayList<ArticleChild>();public final List<ArticleChild> getArticleChild() {return articleChild;}public final void setArticleChild(List<ArticleChild> articleChild) {this.articleChild = articleChild;}public final String getTitle() {return title;}public final void setTitle(String title) {this.title = title;}public final String getEmail() {return email;}public final void setEmail(String email) {this.email = email;}public final String getDate() {return date;}public final void setDate(String date) {this.date = date;}}
好了,读取xml的时候到了。 这里的for 循环是为了测试 代码用的。。 下班了拜拜
package com.superbing.thunisoft.ajaxb.xmlread;import java.io.File;import java.util.List;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Unmarshaller;import com.superbing.thunisoft.ajaxb.bean.Article;import com.superbing.thunisoft.ajaxb.bean.ArticleChild;import com.superbing.thunisoft.ajaxb.bean.ArticleData;public class TestAjaxb {public static void main(String[] args) {File xmlFile = new File("C:\\Users\\Administrator\\Desktop\\jaxb.xml");JAXBContext context;try {context = JAXBContext.newInstance(ArticleData.class);Unmarshaller unm = context.createUnmarshaller();ArticleData data = (ArticleData) unm.unmarshal(xmlFile);System.out.println(data.getTest());List<Article> list = data.getArticle();for(Article art:list) {for(ArticleChild cd : art.getArticleChild()){System.out.println(cd.getChild() + "super");}System.out.println(art.getTitle());}} catch (JAXBException e) {e.printStackTrace();}}}
0 0
- JAXB方式读写xml实例
- JAXB解析xml实例
- jaxb读写xml小例子
- struts读写xml实例
- XML读写实例
- xml读写文件实例
- Java读写XML实例
- xml文件读写实例
- DOM方式读写XML
- jaxb的实例 java解析xml转成javabean
- C#读写xml文件实例
- C#读写xml文件实例
- dom4j读写xml文档实例
- JDOM读写XML文件实例
- c#读写xml文件(实例)
- dom4j读写XML文件实例
- c# xml读写 操作 实例
- C#读写XML简单实例
- session入Redis
- 2016.07.19【初中部 NOIP提高组 】模拟赛C
- 使用aidl隐式调用service出现service intent must be explicit 问题的一种解决方法
- 数据结构之对顺序栈的操作(C语言版)
- bug定位经验日志
- JAXB方式读写xml实例
- PaperWriting——LaTeX编辑小技巧积累[1]
- 数据结构 在单链表和双链表中删除倒数第K个节点
- Git 中的修改与提交比较(05)
- mysql,连接缓存问题 flush hosts
- hdu 2544 最短路(Dijkstra模板)
- translucent影响半透明的状态
- POJ-1324 Holedox Moving
- iOS本地推送消息