import java.io.FileInputStream; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map;
import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder;
public class Test2 { //构造器 public Test2() { }
public static void main(String[] args) { Test2 test2 = new Test2(); test2.readMobileXml(); } /** * @param 读取工作的Mobile.xml 菜单 * */ public void readMobileXml() { try { SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(new FileInputStream("mobile.xml")); Element el = doc.getRootElement();// 获得根节点菜单即一级菜单 Element el2 = getFirstElement(el, "submits");//获得二级菜单 Element el3 = getFirstElement(el2, "service");//获得三级菜单 List ls3 = getAllList(el3);//获得三级菜单下的子元素列表 getMapOfList(ls3);//获得列表的name value 存放到map 里面 ;也可以存放放到Hashtable 里面 } catch (Exception e) { e.printStackTrace(); } } /** * @param 得到List的元素name和value * @List 列表名称 * @return 返回一个Table<String,String> * */ public Hashtable<String, String> getHashtableOfList(List ls) { Hashtable<String, String> ht = new Hashtable<String, String>();// 存放数据 for (int j = 0; j < ls.size(); j++) { Element el = (Element) ls.get(j);// 类型转换 ht.put(el.getName(), el.getText()); System.out.println("在Hashtable里面测试name==" +el.getName() + "value===" + el.getText()); } return ht; }
/** * @param 得到List的元素name和value * @List 列表名称 * @return 返回一个Map<String,String> * */ public Map<String, String> getMapOfList(List ls) { Map<String, String> map = new HashMap<String, String>();//用于存放数据 for (int j = 0; j < ls.size(); j++) { Element el = (Element) ls.get(j);// 类型转换 map.put(el.getName(), el.getText()); System.out.println("在Hashtable里面测试name==" +el.getName() + "value===" + el.getText()); } return map; }
/** * @param 获得父节点下的指定子元素列表 * @Element 父节点 * @String str 指定子元素的列表 * @return 返回一个List,包括节点下的所有子节点 */ public List getAppointList(Element el, String str){ return el.getChildren(str); } /** * @param 获得父节点下的所有子元素列表 * @Element 父节点 * @return 返回列表List * */ public List getAllList(Element el){ return el.getChildren(); } /** * @param 获得指定名称的第一个子元素Element * @Element 父节点 * @String str指定名称 * @return 返回Element * */ public Element getFirstElement(Element el , String str){ return el.getChild(str); }
} |
|
来自: Sunny_Gql > 《Java Tools》