zoukankan      html  css  js  c++  java
  • java使用dom4j解析xml

    package com.szkingdom.leejun;
    
    import java.io.InputStream;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    /**
     * 这里是项目中的简易代码目的是为了解析特有格式的xml
     * @author leejun
     *
     */
    public class DecodeXML {
    	//InputStream strm_xml = new FileInputStream("F:\stud.xml");
    	public static TreeMap<String, String> map = new TreeMap<String,String>();
    	public static String MD5_CODE;
    	public static void getTreeMap(InputStream strm_xml)
    	{
    		try {
    			SAXReader reader  = new SAXReader();
    			reader.setEncoding("GBK");							//设置打开编码
    			Document document = reader.read(strm_xml);			//生成document对象
    			Element rootElm   = document.getRootElement();		//获取到根节点Message
    			
    			//迭代取出Message的子节点存入有序的map集合中,并且将md5签名存入成员变量中
    			for(Iterator it = rootElm.elementIterator();it.hasNext();){
    			      Element subElm  = (Element) it.next();
    			      String tmpKey	  = subElm.getName();
    			      String tmpValue = subElm.getText();
    			      System.out.println("key:"+subElm.getName()+"-----------value:"+subElm.getText());
    			      if("sign".equals(tmpKey))
    			      {
    			    	  MD5_CODE = tmpValue;
    			      }
    			      else {
    			    	  map.put(tmpKey, tmpValue);
    			      }
    			}
    		} catch (DocumentException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	
    	//验签程序
    	public static boolean signValid()
    	{   
    		//生成指定格式的字符串
    		if(map.isEmpty()) return false;
    		StringBuilder sbMD5 = new StringBuilder();
    		Set<String> keys = map.keySet();
    		String tmpMD5 = "";
    		for(String tmpKey : keys)
    		{
    			String tmpValue = map.get(tmpKey);
    			sbMD5.append(tmpKey+"="+tmpValue+"&");
    		}
    		sbMD5.deleteCharAt(sbMD5.length()-1);
    		System.out.println(sbMD5);
    		
    		//将字符串加密
    		try {
    			MessageDigest mdInst = MessageDigest.getInstance("MD5");
    			mdInst.update(sbMD5.toString().getBytes());
    			tmpMD5 = mdInst.digest().toString();
    		} catch (NoSuchAlgorithmException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    		System.out.println(tmpMD5);
    		if(MD5_CODE.equals(tmpMD5))
    		{
    			return true;
    		}
    		else {
    			return false;
    		}
    	}
    }
    


  • 相关阅读:
    [BUUOJ记录] [ZJCTF 2019]NiZhuanSiWei
    [BUUOJ记录] [BJDCTF2020]EasySearch
    [BUUOJ记录] [BJDCTF2020]The mystery of ip
    php版本:实现过滤掉广告、色情、政治相关的敏感词
    热门搜索词获取java版
    如何用代码挖局长尾关键词
    几行python代码解决相关词联想
    如何高效的完成中文分词?
    python 脚本撞库国内“某榴”账号
    搜索引擎之全文搜索算法功能实现(基于Lucene)
  • 原文地址:https://www.cnblogs.com/leejuen/p/5547473.html
Copyright © 2011-2022 走看看