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