读书人

JAVA中利用JDOM类库对XML开展简单的包

发布时间: 2012-12-20 09:53:21 作者: rapoo

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(); } } 

?

读书人网 >XML SOAP

热点推荐