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); } }
对应的xml文件:
<?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>