⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parsereportxml.java

📁 中移动lbs系统服务器端源码
💻 JAVA
字号:
package cn.netjava.lbs.le;

import org.jdom.*;
import org.jdom.input.*;
import java.io.*;
import java.util.*;

/**
 * 
 * <p>Title:中国移动手机定位系统(LBS) le接口库</p>
 * <p>Description: </p>
 * <p>Company:蓝杰实训 </p>
 * @author www.NetJava.cn 
 * @version 0.1
 */
public class ParseReportXML {

	public ParseReportXML() {
	}

	/**
	 * 转换XML到map
	 * 
	 * @param xml
	 *            String:传入的XML
	 * @param map
	 *            HashMap:解析后的MAP
	 * @return HashMap
	 */
	public java.util.HashMap xml2map(String xml, java.util.HashMap map) {
		try {
			if (map == null) {
				map = new HashMap();
			}
			InputStream in = new ByteArrayInputStream(xml.getBytes("gb2312"));
			SAXBuilder builder = new SAXBuilder();
			Document doc = builder.build(in);
			Element root = doc.getRootElement();
			if (!element2map(root.getChildren(), map)) {
				map.clear();
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return map;
	}

	/***************************************************************************
	 * 把xml的内容的节点取出,转换成 SelfName = Value 的形式
	 */
	private boolean element2map(java.util.List list, java.util.Map map) {
		for (int i = 0; i < list.size(); i++) {
			Element e = (Element) list.get(i);
			// String parentName= e.getParent() .getName() ;
			// String parentValue=e.getParent() .getTextTrim() ;
			// System.out.println( " parentName: "+parentName+"= "+parentValue);
			if (e.getTextTrim() != null && e.getTextTrim().length() > 0) {
				map.put(e.getName(), e.getTextTrim());
			}
			java.util.List listChildern = e.getChildren();
			if (listChildern.size() > 0) {
				element2map(listChildern, map);
			}
		}
		return true;

	}

	/**
	 * 转换XML属性值 到map
	 * 
	 * @param xml
	 *            String:传入的XML
	 * @param map
	 *            HashMap:解析后的MAP
	 * @return HashMap
	 */
	public java.util.HashMap xmlAttribute2map(String xml, java.util.HashMap map) {
		try {
			if (map == null) {
				map = new HashMap();
			}
			InputStream in = new ByteArrayInputStream(xml.getBytes("gb2312"));
			SAXBuilder builder = new SAXBuilder();
			Document doc = builder.build(in);
			Element root = doc.getRootElement();
			if (!AttributeElement2map(root.getChildren(), map)) {
				map.clear();
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return map;
	}

	/***************************************************************************
	 * 把xml的内容的节点取出,转换成 ParentName.SelfName = Value 的形式
	 */

	private boolean AttributeElement2map(java.util.List list, java.util.Map map) {
		try {
			for (int i = 0; i < list.size(); i++) {
				Element e = (Element) list.get(i);
				List l_att = e.getAttributes();
				for (int t = 0; t < l_att.size(); t++) {

					Attribute attribute = (Attribute) l_att.get(t);
					String name = attribute.getName();
					String value = attribute.getValue();
					map.put(name, value);// 属性
				}
				java.util.List listChildern = e.getChildren();
				if (listChildern.size() > 0) {
					AttributeElement2map(listChildern, map);
				}
			}
			return true;
		} catch (Exception ex) {
			ex.printStackTrace();
			return false;
		}

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -