<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0
    ?import org.jdom.*;
    import org.jdom.output.*;
    import org.jdom.input.*;
    import org.jdom.xpath.*;

    import java.io.FileOutputStream;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.*;


    /**
    * @author Peter (C)www.ldtec.com
    *
    * 處理xml配置文件
    *
    */

    public class SearchUtil {
    private static String tablelistfile="C:/tomcat/webapps/csms/WEB-INF/search/tablelist.xml";

    /**
    * <p>通過類反射來獲得xml文件的信息</p>
    * @param vbean
    * @param filepath
    * @param xpath
    * @return result
    */
    public static List search(Class vbean,String xpath){
    List result=new ArrayList();
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{
    doc=builder.build(tablelistfile);
    root=doc.getRootElement();
    List xlist=XPath.selectNodes(root,xpath);
    Field[] field=Class.forName(vbean.getName()).getDeclaredFields();
    for(int i=0;i<xlist.size();i++){
    Element xele=(Element)xlist.get(i);
    Object myclass=new Object();
    myclass=Class.forName(vbean.getName()).newInstance();
    for(int k=0;k<field.length;k++){
    String vname=field[k].getName();
    String method=vname.substring(0,1).toUpperCase()+vname.substring(1,vname.length());
    String vmethod="set"+method;
    Class[] clazz = new Class[1] ;
    clazz[0] = String.class ;
    Method met = Class.forName(vbean.getName()).getMethod(vmethod,clazz) ;
    Object[] obj = new Object[1] ;
    obj[0] = xele.getAttributeValue(field[k].getName());
    Object ret = met.invoke(myclass,obj) ;
    }
    result.add(myclass);
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }

    /**
    * <p>xml文件路徑從界面傳進來..</p>
    * @param vbean
    * @param filepath
    * @param xpath
    * @return
    */
    public static List search(Class vbean,String filepath ,String xpath){
    List result=new ArrayList();
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{
    doc=builder.build(filepath);
    root=doc.getRootElement();
    List xlist=XPath.selectNodes(root,xpath);
    Field[] field=Class.forName(vbean.getName()).getDeclaredFields();
    for(int i=0;i<xlist.size();i++){
    Element xele=(Element)xlist.get(i);
    Object myclass=new Object();
    myclass=Class.forName(vbean.getName()).newInstance();
    for(int k=0;k<field.length;k++){
    String vname=field[k].getName();
    String method=vname.substring(0,1).toUpperCase()+vname.substring(1,vname.length());
    String vmethod="set"+method;
    Class[] clazz = new Class[1] ;
    clazz[0] = String.class ;
    Method met = Class.forName(vbean.getName()).getMethod(vmethod,clazz) ;
    Object[] obj = new Object[1] ;
    obj[0] = xele.getAttributeValue(field[k].getName());
    Object ret = met.invoke(myclass,obj) ;
    }
    result.add(myclass);
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }

    /**
    * <p>xml文件路徑由頁面傳進來</p>
    * @param vbean
    * @param filepath
    * @param xpath
    * @param map
    * @return
    */
    public static boolean modify(Class vbean,String filepath,String xpath,Map map){
    boolean result=false;
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{
    doc=builder.build(filepath);
    root=doc.getRootElement();
    List xlist=XPath.selectNodes(root,xpath);
    Element xele=(Element)xlist.get(0);
    Field[] field=Class.forName(vbean.getName()).getDeclaredFields();
    for(int k=0;k<field.length;k++){
    xele.setAttribute(field[k].getName(),(String) map.get(field[k].getName()));
    }

    Format format = Format.getCompactFormat();
    format.setEncoding("gb2312");
    format.setIndent(" ");
    XMLOutputter XMLOut = new XMLOutputter(format);
    XMLOut.output(doc,new FileOutputStream(filepath));
    result=true;
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }


    /**
    * <p>修改某個節點</p>
    * @param vbean
    * @param xpath
    * @return
    */
    public static boolean modify(Class vbean,String xpath,Map map){
    boolean result=false;
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{
    doc=builder.build(tablelistfile);
    root=doc.getRootElement();
    List xlist=XPath.selectNodes(root,xpath);
    Element xele=(Element)xlist.get(0);
    Field[] field=Class.forName(vbean.getName()).getDeclaredFields();
    for(int k=0;k<field.length;k++){
    xele.setAttribute(field[k].getName(),(String) map.get(field[k].getName()));
    }

    Format format = Format.getCompactFormat();
    format.setEncoding("gb2312");
    format.setIndent(" ");
    XMLOutputter XMLOut = new XMLOutputter(format);
    XMLOut.output(doc,new FileOutputStream(tablelistfile));
    result=true;
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }


    /**
    * <p>文件路徑由頁面傳輸進來!</p>
    * @param vbean
    * @param filepath
    * @param xpath
    * @param map
    * @return
    */
    public static boolean add(Class vbean,String filepath,String xpath,Map map,String strele){
    boolean result=false;
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{

    doc=builder.build(filepath);
    root=doc.getRootElement();
    Element tablelistEle=(Element)XPath.selectSingleNode(root,xpath);
    List xlist=tablelistEle.getChildren();
    Element xele=new Element(strele);
    Field[] field=Class.forName(vbean.getName()).getDeclaredFields();
    for(int k=0;k<field.length;k++){
    xele.setAttribute(field[k].getName(),(String) map.get(field[k].getName()));
    }
    xlist.add(xele);

    Format format = Format.getCompactFormat();
    format.setEncoding("gb2312");
    format.setIndent(" ");
    XMLOutputter XMLOut = new XMLOutputter(format);
    XMLOut.output(doc,new FileOutputStream(filepath));
    result=true;
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }
    /**
    * <p>在當前xpath路徑處,添加一個節點</p>
    * @param vbean
    * @param xpath
    * @param map
    * @return
    */
    public static boolean add(Class vbean,String xpath,Map map,String strele){
    boolean result=false;
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{

    doc=builder.build(tablelistfile);
    root=doc.getRootElement();
    Element tablelistEle=(Element)XPath.selectSingleNode(root,xpath);
    List xlist=tablelistEle.getChildren();
    Element xele=new Element(strele);
    Field[] field=Class.forName(vbean.getName()).getDeclaredFields();
    for(int k=0;k<field.length;k++){
    xele.setAttribute(field[k].getName(),(String) map.get(field[k].getName()));
    }
    xlist.add(xele);

    Format format = Format.getCompactFormat();
    format.setEncoding("gb2312");
    format.setIndent(" ");
    XMLOutputter XMLOut = new XMLOutputter(format);
    XMLOut.output(doc,new FileOutputStream(tablelistfile));
    result=true;
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }

    /**
    * <p>文件路徑由頁面傳進來</p>
    * @param vbean
    * @param filepath
    * @param xpath
    * @param map
    * @return
    */
    public static boolean remove(Class vbean,String filepath,String xpath,Map map){
    boolean result=false;
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{
    doc=builder.build(filepath);
    root=doc.getRootElement();
    List templist=XPath.selectNodes(root,xpath);
    String key=(String)map.get("key");
    String value="/(String)map.get(""value");
    int row=0;
    boolean flag=false;
    for(int i=0;i<templist.size();i++){
    Element tempele=(Element)templist.get(i);
    if(tempele.getAttributeValue(key).equals(value)){
    row=i;
    flag=true;
    }
    }
    if(flag==false){
    return false;
    }
    int pos=0;
    pos=xpath.lastIndexOf("/");
    String vpath=xpath.substring(0,pos);
    Element xele=(Element)XPath.selectSingleNode(root,vpath);
    List xlist=xele.getChildren();
    if(flag){
    xlist.remove(row);
    result=true;
    }

    Format format = Format.getCompactFormat();
    format.setEncoding("gb2312");
    format.setIndent(" ");
    XMLOutputter XMLOut = new XMLOutputter(format);
    XMLOut.output(doc,new FileOutputStream(filepath));
    result=true;
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }
    /**
    * <p>刪除某個節點,map參數必須有一個鍵名為key和value</p>
    * @param vbean
    * @param xpath
    * @param map
    * @return result
    */
    public static boolean remove(Class vbean,String xpath,Map map){
    boolean result=false;
    SAXBuilder builder=new SAXBuilder();
    Document doc=null;
    Element root=null;
    try{
    doc=builder.build(tablelistfile);
    root=doc.getRootElement();
    List templist=XPath.selectNodes(root,xpath);
    String key=(String)map.get("key");
    String value="/(String)map.get(""value");
    int row=0;
    boolean flag=false;
    for(int i=0;i<templist.size();i++){
    Element tempele=(Element)templist.get(i);
    if(tempele.getAttributeValue(key).equals(value)){
    row=i;
    flag=true;
    }
    }
    if(flag==false){
    return false;
    }
    int pos=0;
    pos=xpath.lastIndexOf("/");
    String vpath=xpath.substring(0,pos);
    Element xele=(Element)XPath.selectSingleNode(root,vpath);
    List xlist=xele.getChildren();
    if(flag){
    xlist.remove(row);
    result=true;
    }

    Format format = Format.getCompactFormat();
    format.setEncoding("gb2312");
    format.setIndent(" ");
    XMLOutputter XMLOut = new XMLOutputter(format);
    XMLOut.output(doc,new FileOutputStream(tablelistfile));
    result=true;
    }catch(Exception e){
    e.printStackTrace();
    }
    return result;
    }
    public static void main(String args[]){

    Map kk=new HashMap();
    kk.put("f1","xxxx");
    kk.put("f2","MMMM");
    kk.put("f3","JJJJ");
    String v="kkk()";

    String temp=(v.substring(0,1)).toUpperCase();
    String vv=temp+v.substring(1,v.length());
    System.out.println("temp->>"+temp);
    System.out.println("vv->"+vv);
    String path="c:/kk/lo.xml";
    int start=path.lastIndexOf("/");
    int end=path.lastIndexOf(".");
    String xx=path.substring(start+1,end);
    System.out.println("----xx->"+xx);
    }

    }
    posted on 2006-10-13 09:12 有貓相伴的日子 閱讀(1320) 評論(0)  編輯  收藏 所屬分類: jdk
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 亚洲成AV人片在线播放无码| 亚洲国产二区三区久久| 亚洲AV无码精品国产成人| 动漫黄网站免费永久在线观看 | 久久久久久国产精品免费免费男同| 久久久久亚洲精品男人的天堂| 一级做a爰片久久毛片免费看| 亚洲精品麻豆av| 成av免费大片黄在线观看 | 亚洲国产一成久久精品国产成人综合| 亚洲一级毛片免费观看| 99在线精品视频观看免费| 亚洲已满18点击进入在线观看| 91黑丝国产线观看免费 | 一级看片免费视频| 亚洲日韩精品射精日| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 亚洲精品久久无码av片俺去也| 在线不卡免费视频| 新最免费影视大全在线播放| 国产亚洲一区二区三区在线| 1000部禁片黄的免费看| 亚洲色大成网站www永久网站| 免费在线观看你懂的| 四虎影视在线看免费观看| 亚洲午夜福利精品无码| 四虎影视在线影院在线观看免费视频 | 曰批免费视频播放免费| 国产精品久久久亚洲| av无码久久久久不卡免费网站| 精品韩国亚洲av无码不卡区| 亚洲色大成网站WWW久久九九| 777爽死你无码免费看一二区| 亚洲国产精品无码久久久秋霞1| 奇米影视亚洲春色| 日韩免费一区二区三区在线播放 | 国产精品免费久久| 亚洲国产成人无码av在线播放| 亚洲av无码专区在线观看素人| 99re免费视频| 一级毛片完整版免费播放一区|