Dom4J 解析案例

 

public class Analisys { 


public static void main(String[] args) throws Exception { 
File file = new File( 
"E:\\MyEclipse 6.5\\newworkspace\\test\\src\\test\\java\\com\\supporter\\xml\\data.xml"); 
System.out.println("begin analysis file:" + file.getName()); 
analisys(file); 
} 

private static void analisys(File file) throws Exception { 
SAXReader saxReader = new SAXReader(); 
Document document = saxReader.read(file); 

Element rootElm = document.getRootElement(); 

List<Person> list = new ArrayList<Person>(); 
recurveCall(rootElm, list); 
for (Iterator<Person> it = list.iterator(); it.hasNext();) { 
System.out.println(it.next() + "\n"); 
} 
} 

private static void recurveCall(Element root, List<Person> list) { 
Iterator<Element> it = root.elementIterator(); 
Person p = null; 
int i = 1; 
for (; it.hasNext(); i++) { 
Element e = it.next(); 
String eleName = e.getName(); 
String layer = eleName.substring(5, eleName.length()); 
int reallayer = Integer.valueOf(layer); 
System.out.println("layer is :" + reallayer); 
p = new Person(e.attributeValue("name"), e.attributeValue("age"), 
(reallayer + 1) * 100 + i); 
list.add(p); 
recurveCall(e, list); 
} 
} 
} 


上例对应的xml: 
<datas> 
<level0 name="yang0" age="0"> 
<level1 name="yang1" age="1"> 
<level2 name="yang2" age="2"></level2> 
</level1> 
<level1 name="yang01" age="3"> 
<level2 name="yang11" age="4"></level2> 
<level2 name="yang12" age="5"></level2> 
</level1> 
</level0> 

<level0 name="ding" age="00"> 
<level1 name="ding1" age="01"> 
<level2 name="ding2" age="02"></level2> 
</level1> 
<level1 name="ding01" age="03"> 
<level2 name="ding11" age="04"></level2> 
<level2 name="ding12" age="05"></level2> 
</level1> 
</level0> 
</datas>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值