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>