微信支付--工具类--处理XML数据
来源:互联网 发布:linux自动获取ip地址 编辑:程序博客网 时间:2024/04/29 11:31
import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import java.util.SortedMap;import java.util.TreeMap;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;/** * * @author Administrator * */public class XMLUtil {/** * * 解析xml,返回第一级元素键值对。如果第一级元素有子节点,则此节点的值是子节点的xml数据。 * * @param strxml * * @return * * @throws JDOMException * * @throws IOException */public static SortedMap<String, String> parseMap(String strxml)throws JDOMException, IOException {if (null == strxml || "".equals(strxml)) {return null;}strxml = strxml.replaceFirst("encoding=\".*\"", "encoding=\"UTF-8\"");SortedMap<String, String> m = new TreeMap<String, String>();InputStream in = new ByteArrayInputStream(strxml.getBytes("UTF-8"));SAXBuilder builder = new SAXBuilder();Document doc = builder.build(in);Element root = doc.getRootElement();List list = root.getChildren();Iterator it = list.iterator();while (it.hasNext()) {Element e = (Element) it.next();String k = e.getName();String v = "";List children = e.getChildren();if (children.isEmpty()) {v = e.getTextNormalize();} else {v = XMLUtil.getChildrenText(children);}m.put(k, v);}// 关闭流in.close();return m;}/** * * 获取子结点的xml * * @param children * * @return String */private static String getChildrenText(List children) {StringBuffer sb = new StringBuffer();if (!children.isEmpty()) {Iterator it = children.iterator();while (it.hasNext()) {Element e = (Element) it.next();String name = e.getName();String value = e.getTextNormalize();List list = e.getChildren();sb.append("<" + name + ">");if (!list.isEmpty()) {sb.append(XMLUtil.getChildrenText(list));}sb.append(value);sb.append("</" + name + ">");}}return sb.toString();}/** * 输出XML * * @param parameters * @return */public static String parseXML(SortedMap parameters) {StringBuffer sb = new StringBuffer();sb.append("<xml>");Set es = parameters.entrySet();Iterator it = es.iterator();while (it.hasNext()) {Map.Entry entry = (Map.Entry) it.next();String k = (String) entry.getKey();String v = (String) entry.getValue();if (null != v && !"".equals(v) && !"appkey".equals(k)) {sb.append("<" + k + ">" + v + "</" + k + ">\n");}}sb.append("</xml>");return sb.toString();}}
0 0
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理二维码
- 微信支付--工具类--通过Https往API post xml数据
- 微信支付工具类
- 微信支付工具类
- 微信支付--工具类--随机字符串
- 微信支付--工具类--创建签名
- 微信支付--工具类--MD5
- 微信支付--工具类--组包
- 微信支付订单工具类
- 微信APP支付工具类
- 微信支付签名工具类---Signature
- 微信支付--异步处理支付结果
- jersey接口处理微信支付回调,dom4j解析微信消息xml
- 微信支付的封装工具类,集成微信支付
- 微信支付--工具类--产生二维码验证签名
- 微信支付: 金额元分之间转换工具类
- 微信支付Java开发快速入门&工具类
- Linux系统查看系统是32位还是64位方法总结
- 微信支付--工具类--随机字符串
- 微信支付--工具类--创建签名
- POI操作Excel:cell的背景颜色类型
- Hibernate中DetachedCriteria的用法
- 微信支付--工具类--处理XML数据
- 关于3D Touch
- 子弹飞
- Android开发之Messenger信使和service实现跨进程
- iOS9 对ShareSDK的影响(适配iOS 9必读)
- 微信公共平台的总结
- POJ 3415 Common Substrings【后缀自动机】
- Android中启动活动的最佳写法
- const 使用过程中的难点和区别