解析POST請求傳遞的XML參數

平常可能做得比較多是的解析json傳參,如下

public static JSONObject parseRequestToJson(HttpServletRequest request, String charset) throws Exception {
		return new JSONObject(getPostString(request, charset));
	}

	public static String getPostString(HttpServletRequest req, String charset) {
		BufferedReader br = null;
		StringBuilder sb = new StringBuilder();
		try {
			br = new BufferedReader(new InputStreamReader(req.getInputStream(), charset));
			String temp = "";
			while ((temp = br.readLine()) != null) {
				sb.append(temp);
				System.out.println(sb.toString());
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (Exception e1) {
				e1.toString();
			}
		}
		return sb.toString();
	}

main{
    //得到json對象
    JSONObject jo = parseRequestToJson(request,"utf-8");

    //或則使用fastjson
    Map<String,String[]> jsonFromSdkServer = request.getParameterMap();
	String response_key = jsonFromSdkServer.values().iterator().next()[0];
	JSONObject jsonParams = JSON.parseObject(response_key);
}

現在主要說說xml格式的怎麼獲取:

//其實也就4行代碼
//得到post傳遞過來的xml的string
String xml = request.getParameter("xml");
//DOM解析器工廠
javax.xml.parsers.DocumentBuilderFactory dbf = javax.xml.parsers.DocumentBuilderFactory.newInstance();
//DOM解析器對象     
javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder(); 
//把得到的執行解析
org.w3c.dom.Document parse = db.parse(new ByteArrayInputStream(xml.getBytes()));
//得到xml中例如<name>haha</name>
String name = parse.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
//輸出haha
System.out.println(name);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章