DOM4J解析——二
1.要求:
(1)解析文档。
(2)把解析出来的book封装成为对象,并且放置到map集合中。
2.需要解析的文档
3.开始解析
package com.work.day25;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Wwork1 {
public static void main(String[] args) throws Exception {
SAXReader sc = new SAXReader();
Document read = sc.read("src/com/work/day25/books.xml");
Document dom = read.getDocument();
Element root = dom.getRootElement();
System.out.println(root.getName());
List<Element> ele = root.elements();
Iterator<Element> iter = ele.iterator();
Map<Integer, Book> map = new HashMap<Integer, Book>();
while (iter.hasNext()) {
Element next = iter.next();
System.out.println(next.getName());
List<Attribute> attr = next.attributes();
Iterator<Attribute> iterator = attr.iterator();
Book bo = new Book();
while (iterator.hasNext()) {
Attribute next2 = iterator.next();
System.out.println(next2.getName());
System.out.println(next2.getValue());
if (next2.getName().equals("bid")) {
String value = next2.getValue();
int parseInt = Integer.parseInt(value);
bo.setBid(parseInt);
}
List<Element> elee = next.elements();
Iterator<Element> iterator2 = elee.iterator();
while (iterator2.hasNext()) {
Element next3 = iterator2.next();
if (next3.getName().equals("name")) {
String name = next3.getText();
bo.setName(name);
} else {
double d = Double.parseDouble(next3.getText());
bo.setPrice(d);
}
System.out.println(next3.getName());
System.out.println(next3.getText());
}
map.put(Integer.parseInt(next2.getValue()), bo);
}
}
Set<Entry<Integer, Book>> entrySet = map.entrySet();
Iterator<Entry<Integer, Book>> iterator = entrySet.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
结果:
下期再见!