dom4j解析

try
{
Document doc = read("students.xml");
Element root = getRootElement(doc);

for ( Iterator<Element> i = root.elementIterator("student"); i.hasNext();) {
Element foo = i.next();

for ( Iterator<Element> j = foo.elementIterator(); j.hasNext();) {
Element subelement = j.next();
if(subelement.getName().equals("name")){

System.out.println("name:"+subelement.getData());
}
if(subelement.getName().equals("age")){

System.out.println("age:"+subelement.getData());
}
}

}
}
catch (DocumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

}
//读取XML,输入文件名,返回XML文档
public static Document read(String fileName) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(new File(fileName));
return document;
}

//获取ROOT节点
public static Element getRootElement(Document doc){
return doc.getRootElement();
}

--------------------------------------------------------------


<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<age>22</age>
<name>李小龙</name>
</student>
<student>
<name>黄飞鸿</name>
<age>55</age>

</student>
<student>
<age>88</age>
<name>霍元甲</name>

</student>
</students>


-------------------------------


对List的遍历有三种方式

List<A> list = new ArrayList<A>();
list.add(new A());
list.add(new A());
...

第一种:
for(Iterator<A> it = list.iterator(); it.hasNext(); ) {
....
}
这种方式在循环
执行过程中会进行数据锁定, 性能稍差, 同时,如果你想在寻欢过程中去掉某个元素,只能调用it.remove方法, 不能使用list.remove方法, 否则一定出并发访问的错误.

第二种:
for(A a : list) {
.....
}
内部调用第一种, 换汤不换药, 这种循环方式还有其他限制, 不建议使用它

第三种:
for(int i=0; i<list.size(); i++) {
A a = list.get(i);
...
}
内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值