package com.ynxbd.wx.wxfactory.menu.bean; import com.qq.weixin.mp.aes.AesException; 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; public class XMLParse { public static Object[] extract(String xmltext) throws Exception { Object[] result = new Object[3]; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); dbf.setFeature("http://xml.org/sax/features/external-general-entities", false); dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false); dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); dbf.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", true); dbf.setXIncludeAware(false); dbf.setExpandEntityReferences(false); DocumentBuilder db = dbf.newDocumentBuilder(); StringReader sr = new StringReader(xmltext); InputSource is = new InputSource(sr); Document document = db.parse(is); Element root = document.getDocumentElement(); NodeList nodelist1 = root.getElementsByTagName("Encrypt"); NodeList nodelist2 = root.getElementsByTagName("ToUserName"); if (nodelist2.item(0) == null) { nodelist2 = root.getElementsByTagName("AppId"); } result[0] = 0; result[1] = nodelist1.item(0).getTextContent(); result[2] = nodelist2.item(0).getTextContent(); return result; } catch (Exception var10) { var10.printStackTrace(); throw new Exception("-40002"); } } 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); } }