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();
}
}
分享到:
相关推荐
用于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 是一个处理xml文件的java类库,可以方便地对xml文件进行读或写
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java beans之间进行数据传递的JAVA类库。...
Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
使用DDL,DML语言对数据库进行基本操作 338 查询数据库里的数据 339 预编译语句(PreparedStatement) 340 使用事务 341 事务的级别控制 343 使用存储过程 345 操作元数据 347 ResultSetMetaData(结果集元数据) 349...
Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
commons-beanutils.jar Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar ...velocity基于java的模板引擎,允许用简单的模板语言来引用java定义的对
用jdom解析xml.rar 电子书店管理系统.rar 编译原理--LR(1)分析表构造(JAVA).rar 网上书店.rar 网络电视源代码TV-Browser.rar 网络蚂蚁Java版.rar 网页浏览器.rar 蜀山剑侠传游戏J2ME手机版源代码.rar 超市购物...
dom4j 目录的介绍: 1)docs 是文档目录 2)如何查 Dom4j 的文档 3)Dom4j 快速入门 2)lib 目录 ...第三方的解析: jdom 在 dom 基础上进行了封装、 dom4j 又对 jdom 进行了封装。 pull 主要用在 And
用jdom解析xml.rar 网上书店.rar 网络电视源代码TV-Browser.rar 网络蚂蚁Java版.rar 网页浏览器.rar 蜀山剑侠传游戏J2ME手机版源代码.rar 轻松商城系统.rar 选修课程管理系统V1.2.3.rar 邮政汇款打印程序.rar 配置...
是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache...
包括以下几个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