package com.ku.firstmaven.service;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class toXml {
public static void main(String[] args) throws IOException {
//构建请求XML
String requestXml = buildRequestXml();
System.out.println(requestXml);
//把字符串转换为输入流
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(requestXml.getBytes("GBK"));
System.out.println(arrayInputStream);
//获取XML(流里取得)
StringBuffer buf = new StringBuffer();
InputStream stream = arrayInputStream;
BufferedReader br = new BufferedReader(new InputStreamReader(stream, "GBK"));
String line;
while (null != (line = br.readLine())) {
buf.append(line);
}
String xml = buf.toString();
System.out.println(xml);
System.out.println("----------------");
}
/**
* 构建请求XML
* @param
* @return
*/
public static String buildRequestXml() {
String requestXml = "";
try {
//创建请求报文
Document document = DocumentHelper.createDocument();
document.setXMLEncoding("GBK");
Element packet = document.addElement("PACKET");
//创建请求报文头
Element requesthead = packet.addElement("requesthead");
requesthead.addElement("user").addText("007");
requesthead.addElement("request_type").addText("01130098");
requesthead.addElement("password").addText("44bbf9de-3ae9-33e2-821c-9bbc24e7f32c");
requesthead.addElement("server_version").addText("00000001");
requesthead.addElement("sender").addText("007");
requesthead.addElement("uuid").addText("111d8353-573d-4ec1-be76-e573763f8da1");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
requesthead.addElement("flowintime").addText(sdf.format(new Date()));
//请求报文体
Element body = packet.addElement("BODY");
Element registTask = body.addElement("registTask");
registTask.addElement("registNo").addText("L001");
registTask.addElement("licenseNo").addText("粤A2002");
registTask.addElement("linkMan").addText("枯兴");
registTask.addElement("linkTel").addText("13513145200");
registTask.addElement("dangerAddress").addText("广州某地");
registTask.addElement("brand").addText("保时捷");
registTask.addElement("modelCode").addText("BSJ00x00");
registTask.addElement("vinNo").addText("lcxlcxlcxlcxlxc");
registTask.addElement("factoryCode").addText("3456478913415");
registTask.addElement("checkUserName").addText("枯兴");
registTask.addElement("checkUserCode").addText("731546145");
registTask.addElement("checkUserPhone").addText("13513145200");
registTask.addElement("checkResidentFlag").addText("1");
requestXml = document.asXML();
} catch (Exception e) {
String msg = "构建请求XML失败";
System.out.println(msg);
}
return requestXml;
}
}
流的转换注意中文编码问题哦!