All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.firefly.wechat.utils.XMLParser Maven / Gradle / Ivy

package com.firefly.wechat.utils;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.StringReader;

/**
 * XMLParse class
 * 

* 提供提取消息格式中的密文及生成回复消息格式的接口. */ class XMLParser { /** * 提取出xml数据包中的加密消息 * * @param xml 待提取的xml字符串 * @return 提取出的加密消息字符串 * @throws AesException */ public static Object[] extract(String xml) throws AesException { Object[] result = new Object[3]; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); StringReader sr = new StringReader(xml); InputSource is = new InputSource(sr); Document document = db.parse(is); Element root = document.getDocumentElement(); NodeList nodelist1 = root.getElementsByTagName("Encrypt"); NodeList nodelist2 = root.getElementsByTagName("ToUserName"); result[0] = 0; result[1] = nodelist1.item(0).getTextContent(); result[2] = nodelist2.item(0).getTextContent(); return result; } catch (Exception e) { throw new AesException(AesException.ParseXmlError, e); } } /** * 生成xml消息 * * @param encrypt 加密后的消息密文 * @param signature 安全签名 * @param timestamp 时间戳 * @param nonce 随机字符串 * @return 生成的xml字符串 */ public static String generate(String encrypt, String signature, String timestamp, String nonce) { String format = "\n" + "\n" + "\n" + "%3$s\n" + "\n" + ""; return String.format(format, encrypt, signature, timestamp, nonce); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy