Document和Element引自org.w3c.dom /** * xml传递java对象字节流 */ try { //初始化Java对象 Message msg = new Message(); msg.setStatus(Message.HELLO); msg.setMessage("come from china!"); //序列化对象 ByteArrayOutputStream bOut = new ByteArrayOutputStream(); ObjectOutputStream objOut = new ObjectOutputStream(bOut); objOut.writeObject(msg); //base64 encode BASE64Encoder encode = new BASE64Encoder(); String xmlStr = encode.encode(bOut.toByteArray()); //xml file string StringBuffer xmlFile = new StringBuffer(); xmlFile.append("<?xml version=/"1.0/" encoding=/"UTF-8/"?>") .append("<rule>") .append("<obj>"+xmlStr+"</obj>") .append("</rule>"); System.out.println("xml: "+xmlFile.toString()); //parse xml DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new ByteArrayInputStream(xmlFile.toString().getBytes())); Element root = (Element) doc.getElementsByTagName("obj").item(0); String xmlNode = root.getFirstChild().getNodeValue(); //base64 decode BASE64Decoder decode = new BASE64Decoder(); byte[] objBytes = decode.decodeBuffer(xmlNode); //反序列化 ByteArrayInputStream bIn = new ByteArrayInputStream(objBytes); ObjectInputStream objIn = new ObjectInputStream(bIn); Object obj = objIn.readObject(); if(obj != null){ if (obj instanceof Message) { Message m = (Message)obj; System.out.println("Status: "+m.getStatus()); System.out.println(m.getMessage()); } } } catch (Exception e) { e.printStackTrace(); }