将文件目录转换为对应的数字

    package WildCat.XML.readFloas;  
      
    import java.io.File;  
    import java.util.ArrayList;  
    import java.util.Iterator;  
    import java.util.List;  
      
    import org.dom4j.Document;  
    import org.dom4j.DocumentException;  
    import org.dom4j.DocumentHelper;  
    import org.dom4j.Element;  
    import org.dom4j.io.SAXReader;  
      
    public class changeToString {  
        public static int num=0;  
        public static StringBuffer sb= new StringBuffer();  
        //getDocumentName getName=new getDocumentName();  
          
        static ArrayList<String> list = new ArrayList<String>();  
        //static ArrayList<String> list = new getDocumentName().getName("RAR\\WildCat\\ok\\8\\oh.ppt");  
          
        /** 
         * @param args 
         *  
         * 通过DOM4J读取XML 
         * @throws Exception  
         */  
          
        public static void test(String firName,Element e) throws Exception  
        {         
            for (Iterator iter=e.elementIterator();iter.hasNext();)  
                {             
                    Element ele=(Element)iter.next();  
                    String name=ele.attributeValue("name");  
                    if (firName.equals(name))  
                    {  
                        String id=ele.attributeValue("id");  
                        System.out.println("Id:"+id);  
                        num++;  
                        sb.append(id+"\\");  
                          
                        if (num<list.size())  
                        {  
                            test(list.get(num),ele);  
                        }  
                    }  
                      
                 }    
        }  
          
        public static String change(String firstPath ) throws Exception {  
            getDocumentName getName=new getDocumentName();  
            list = new getDocumentName().getName(firstPath);  
              
            SAXReader reader=new SAXReader();  
            Document document=reader.read(new File("RAR.xml"));  
            Element root=document.getRootElement();  
            if (list.get(0).equals(root.getName()))   
            {  
                  
                num++;  
                test(list.get(num),root);  
            }  
            String path=sb.toString();  
            //清空全局变量StringBuffer  
            sb=null;          
            return path;  
        }  
        //测试主函数  
        public static void main(String[] args) throws Exception {  
            String tt=change("RAR\\jim\\ok\\8\\oh.ppt");  
            System.out.println(tt);  
        }  
      
    }  

[java] view plaincopyprint?

    对应的xml文件:  


[html] view plaincopyprint?

    <?xml version="1.0" encoding="UTF-8"?>  
      
    <jim>  
      <first1 name="你好.doc" id="3"/>  
      <first1 name="ok" id="1">  
        <first1 name="oh.ppt" id="2"/>  
        <first1 name="8" id="1">  
          <first1 name="myGod.doc" id="1"/>  
          <first1 name="oh.ppt" id="2"/>  
        </first1>  
        <first1 name="second" id="3">  
          <first1 name="mytest.doc" id="1"/>  
          <first1 name="null" id="2"/>  
        </first1>  
      </first1>  
      <first1 name="z" id="2">  
        <first1 name="mytest.doc" id="1"/>  
        <first1 name="test.doc" id="2"/>  
      </first1>  
    </jim>  
比如jim/second/mytest.doc会转换成jim/3/1。

你可能感兴趣的:(将文件目录转换为对应的数字)