jdom解析xml示例

要解析的xml 代码
  1. <!---->xml version="1.0" encoding="GBK"?>  
  2. <sys_para>  
  3.   <para>  
  4.     <item code="hostname"        value="192.168.2.18"       description="LDAP服务器IP"/>  
  5.     <item code="port"            value="389"                description="服务器端口"/>  
  6.     <item code="admin"           value="培训a"                description="管理员帐号"/>  
  7.     <item code="pwd"             value="password"           description="密码"/>  
  8.     <item code="basedn"          value="eweb"               description="组织名(基准DN)"/>  
  9.     <item code="adminuser"       value="admin"              description="系统管理员用户"/>  
  10.     <item code="adminpwd"        value="200200"             description="系统管理员密码"/>  
  11.     <item code="defaultgroupid"  value="47"                 description="默认组id(无任何权限)"/>       
  12.   para>  
  13. sys_para>  

 

java 代码
  1.   
  2. package ldap;   
  3.   
  4. import java.io.*;   
  5. import java.util.*;   
  6. import org.jdom.*;   
  7. import org.jdom.input.SAXBuilder;   
  8.   
  9. public class UMParas   
  10. {   
  11.   
  12.     private static HashMap prop;   
  13.     private static long lastLoadTime;   
  14.     private static long interval = 0x186a0L;  //refresh per 100 second   
  15. //    static Class class$0; /* synthetic field */   
  16.   
  17.     public UMParas()   
  18.     {   
  19.     }   
  20.     //input an para and return the result    
  21.     public static synchronized String getPara(String paras)   
  22.         throws IllegalArgumentException   
  23.     {   
  24.         if(paras == null || paras.trim().length() == 0)   
  25.             throw new IllegalArgumentException("Parameter's value invalid.");   
  26.         long currentTime = System.currentTimeMillis();   
  27.         if(prop == null || currentTime - lastLoadTime > interval)   
  28.             reloadDom();   
  29.         Object obj = prop.get(paras);   
  30.         if(obj != null)   
  31.             return (String)obj;   
  32.         else  
  33.             return null;   
  34.     }   
  35.     //load the xml file   
  36.     private static synchronized void reloadDom()   
  37.     {   
  38.         if(prop == null)   
  39.             prop = new HashMap();   
  40.         SAXBuilder builder = new SAXBuilder();   
  41.         Document read_doc = null;   
  42.         try  
  43.         {   
  44.             read_doc = builder.build(UMParas.class.getResource("ldapconfig.xml"));   
  45.         }   
  46.         catch(FileNotFoundException e)   
  47.         {   
  48.             e.printStackTrace();   
  49.         }   
  50.         catch(JDOMException e)   
  51.         {   
  52.             e.printStackTrace();   
  53.         }   
  54.         catch(IOException e)   
  55.         {   
  56.             e.printStackTrace();   
  57.         }   
  58.         Element rootElement = read_doc.getRootElement();   
  59.         List list = rootElement.getChildren("para");   
  60.         for(Iterator i = list.iterator(); i.hasNext();)   
  61.         {   
  62.             Element current = (Element)i.next();   
  63.             List item = current.getChildren("item");   
  64.             Attribute code;   
  65.             Attribute value;   
  66.             for(Iterator j = item.iterator(); j.hasNext(); prop.put(code.getValue(), value.getValue()))   
  67.             {   
  68.                 Element init = (Element)j.next();   
  69.                 code = init.getAttribute("code");   
  70.                 value = init.getAttribute("value");   
  71.             }   
  72.   
  73.         }   
  74.   
  75.         System.out.println("解析ldapconfig.xml成功");   
  76.         lastLoadTime = System.currentTimeMillis();   
  77.     }   
  78.   
  79.     public static void main(String args[])   
  80.     {   
  81.         System.out.println(getPara("hostname"));   
  82.     }   
  83.   
  84. }   

你可能感兴趣的:(xml,J#)