package com.meeting.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.meeting.entity.weixin.TextMessage;
import com.thoughtworks.xstream.XStream;
/**
*
* @ClassName: MessageUtil
* @Description: 解析文本消息的工具类
* @author chengrui
* @date 2017-3-28 上午11:08:40
*/
public class MessageUtil {
/**
* @Title parseXml
* @Description 解析微信发来的请求(xml)
* @return Map 返回解析的结果
*/
@SuppressWarnings("unchecked")
public static Map<String, String> parseXml(HttpServletRequest request)
throws IOException, DocumentException {
// 将解析的结果存入map集合中
Map<String, String> map = new HashMap<String, String>();
// 从request中获取流
InputStream inputStream = request.getInputStream();
// 使用dom4j读取输入流
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
// 得到xml根元素
Element root = document.getRootElement();
// 得到根元素的所有子节点
List<Element> elementList = root.elements();
// 迭代
for (Element e : elementList) {
map.put(e.getName(), e.getText());
}
inputStream.close();
inputStream = null;
return map;
}
/**
* @Title messageToXml
* @Description 文本消息对象转化成xml
* @return String 返回转化后的字符串
*/
public static String messageToXml(TextMessage textMessage) {
XStream xstream = new XStream();
// 替换根节点
xstream.alias("xml", textMessage.getClass());
return xstream.toXML(textMessage);
}
}
解析文本消息的工具类
最新推荐文章于 2021-11-09 09:40:48 发布