`

JAVA中利用JDOM类库对XML进行简单的包装处理

阅读更多
package test.base;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 *<p>   这是一个XML的数据包装类,实现了对XML的简单包装,默认的根结点是property ;
 *只是增加一级子结点,子结点只有一个text内容;
 * 获取子结点的内容是根据前面的 <tag, value>得到的;</p>
 *<p>   这个包装类可以很容易的构造出一个简单的 org.jdom.Document对象;
 * 然后将该文档对象转化成 byte[]对象。</p>
 *<p>   相反的过程,包装类可以将由Document转换出来的 byte[] 对象转换成org.jdom.Document 对象;
 * 然后从 Document 中读取出 <tag,value>。</p>
 * @author wangyi
 *
 */
public class XmlDatagram {
 /** 日志处理器。 */
 private static final Logger logger =Logger.getLogger(XmlDatagram.class);
 /** JDOM文档。 */
 private Document document;
 
 /**
  * 默认的构造方法。
  * @param messageid
  */
 public XmlDatagram() {
  document = new Document();
  document.setRootElement(new Element("property"));
 }
 
 /**
  * 用XML文档的 byte[] 构造 XmlDatagram对象。
  * @param array 由标准的XML文档转换成的 byte[]对象。
  */
 public XmlDatagram(byte[] array) {
	  ByteArrayInputStream binput =new ByteArrayInputStream(array);
	  SAXBuilder builder = new SAXBuilder();
	  try {
	   this.document= builder.build(binput);
	  } catch (IOException ex){
	   logger.error("从byte构造document的时候出现IO异常。",ex);
	  } catch (JDOMException ex){
	   logger.error("从byte构造document的时候出现JDOM异常。",ex);
	  }
 }
 
 /**
  * 增加子结点。
  * @param tag 标签。
  * @param value 标签的内容。
  * @return 新创建的 Element 对象。
  */
 public Element addChild(String tag, String value){
	  Element element = new Element(tag);
	  element.setText(value);
	  document.getRootElement().addContent(element);
	  return element;
 }
 
 /**
  * 得到子结点的内容。
  * @param tag 标签。
  * @return 标签的内容。
  */
 public String getChildValue(String tag) {
	  String value =document.getRootElement().getChildText(tag);
	  return value;
 }

 /**
  * 得到字节数组。
  * @return 由 XML 文档转换成的 byte[]对象。
  * @throws IOException
  */
 public byte[] toByteArrays() throws IOException{
	  ByteArrayOutputStream boutput =new ByteArrayOutputStream();
	  Format format =Format.getCompactFormat();
	  format.setEncoding("UTF-8");
	  XMLOutputter xmlOutput = new XMLOutputter(format);
	  xmlOutput.output(this.document,boutput);
	  return boutput.toByteArray();
 }
 
}
 

 

分享到:
评论

相关推荐

    java xml解析jdom类库

    用于xml解析,很好用的一个java类库

    处理xml文件的java类库

    jdom.rar - jdom 是一个处理xml文件的java类库,可以方便地对xml文件进行读或写-jdom is a processing xml file java class library, can easily read or write xml file

    jdom.rar_jdom_jdom.zip

    jdom 是一个处理xml文件的java类库,可以方便地对xml文件进行读或写

    java源码包---java 源码 大量 实例

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包2

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包4

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包3

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JOX实现XML和JavaBean相互转化

    用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java beans之间进行数据传递的JAVA类库。...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

    Java语言基础下载

    使用DDL,DML语言对数据库进行基本操作 338 查询数据库里的数据 339 预编译语句(PreparedStatement) 340 使用事务 341 事务的级别控制 343 使用存储过程 345 操作元数据 347 ResultSetMetaData(结果集元数据) 349...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

    java开发常用jar包

    commons-beanutils.jar Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar ...velocity基于java的模板引擎,允许用简单的模板语言来引用java定义的对

    java源码包JSP实例源码JAVA开发源码65个合集.zip

    用jdom解析xml.rar 电子书店管理系统.rar 编译原理--LR(1)分析表构造(JAVA).rar 网上书店.rar 网络电视源代码TV-Browser.rar 网络蚂蚁Java版.rar 网页浏览器.rar 蜀山剑侠传游戏J2ME手机版源代码.rar 超市购物...

    dom4j-1.6.1 + w3cschool.CHM离线帮助文档

    dom4j 目录的介绍: 1)docs 是文档目录 2)如何查 Dom4j 的文档 3)Dom4j 快速入门 2)lib 目录 ...第三方的解析: jdom 在 dom 基础上进行了封装、 dom4j 又对 jdom 进行了封装。 pull 主要用在 And

    java源码包33个实例源码阳光酒店管理系统手机游戏J2ME毕业设计书籍管理系统网络电视源代码TV

    用jdom解析xml.rar 网上书店.rar 网络电视源代码TV-Browser.rar 网络蚂蚁Java版.rar 网页浏览器.rar 蜀山剑侠传游戏J2ME手机版源代码.rar 轻松商城系统.rar 选修课程管理系统V1.2.3.rar 邮政汇款打印程序.rar 配置...

    web开发常用jar

    是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache...

    Hibernate基础配置导入的最小JAR包

    包括以下几个Jar包: hibernate3.jar-核心...dom4j-1.6.1.jar-类似于jdom,用来读写XML文件的 javassist-3.4.GA.jar- Javassist 字节码解释器 jta-1.1.jar-标准的JTA API。 slf4j-api-1.5.2.jar slf4j-nop-1.5.2.jar

Global site tag (gtag.js) - Google Analytics