public List<String> splitTextMsgTo3Parts(String xml) {
        if (xml.isEmpty() || xml == null) return null;

        String regex = "^(<xml><ToUserName><!\\[CDATA\\[\\w+?\\]\\]><\\/ToUserName><FromUserName><\\!\\" +
                "[CDATA\\[\\w+?\\]\\]\\><\\/FromUserName><CreateTime>\\d+?<\\/CreateTime><MsgType><\\!\\" +
                "[CDATA\\[text\\]\\]><\\/MsgType><Content><\\!\\[CDATA\\[)(.*?)(\\]\\]><\\/Content><MsgId>" +
                "\\d+?<\\/MsgId><\\/xml>)$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(xml);

        if (matcher.find()) {
            List<String> list = new ArrayList<String>();
            for (int i = 0; i < matcher.groupCount(); i++) {
                list.add(matcher.group(i + 1));
            }
            return list;
        }
        return null;
    }