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;
    		}
    	}
    }
    


  • 相关阅读:
    函数的缺省参数和函数初始化示例以及布尔型参数的使用示例
    指针使用示例程序
    按值传递对象和按址传递对象
    详解js跨域
    CSS之BFC及其应用
    js图片预加载、有序加载
    12个非常有用的JavaScript技巧
    MySQL使用pt-online-change-schema工具在线修改1.6亿级数据表结构
    nodeJS实现一个在线填表应用
    浏览器的缓存机制
  • 原文地址:https://www.cnblogs.com/leejuen/p/5547473.html
Copyright © 2011-2022 走看看