分享

JDOM对XML的读取:<封装好的类>还可以进一步完善

 Sunny_Gql 2011-07-26

 

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的元素namevalue

     * @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的元素namevalue

     * @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);

    }

 

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约