微信支付--工具类--处理XML数据
2015-11-24 10:18
579 查看
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(); } }
相关文章推荐
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--处理XML数据
- 微信支付--工具类--创建签名
- 微信支付--工具类--创建签名
- 微信支付--工具类--创建签名
- 微信支付--工具类--创建签名
- 微信支付--工具类--创建签名
- 微信支付--工具类--创建签名