泛型类
在类定义的时候,在后面加上<E>,在下面的成员中(属性,方法)的E在用户对E赋值的时候就会变成相应的数据类型。
只在编译时有效
静态泛型方法
public static <T> T show(T t){
return t;
}
dom4j
优点:
1.将xml元素封装成对象使用
缺点:
1.速度相对于sax慢
2.可能出现内存溢出情况
使用
-导包
-创建SAXReader对象
-通过SAXReader对象得到所有节点
-得到根节点
-得到子节点集合遍历
解析XML
SAXReader reader = new SAXReader();
Document doc = reader.read("book.xml");
Element ele = doc.getRootElement();
List<Element> elements = ele.elements();
for (Element element : elements) {
List<Element> elements2 = element.elements();
for (Element element3 : elements2) {
System.out.println(element3.getName()+":"+element3.getStringValue());
}
}
将文件写入XML
public static void main(String[] args) throws IOException {
File file = new File("book2.xml");
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("books");
Element book = root.addElement("book");
Element title = book.addElement("title");
title.setText("磊少自传");
write(file,doc);
}
public static void write(File file,Document doc){
//封装写入文件的方法
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("GBK");
XMLWriter writer = new XMLWriter(new FileWriter(file), of);
writer.write(doc);
writer.flush();
writer.close();
}
删除XML文件
public static void main(String[] args) throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document doc = reader.read("book.xml");//解析xml文件得到所有文件的元素
Element books = doc.getRootElement();//得到根节点
List<Element> elements = books.elements();//得到所有子节点
for (Element element : elements) {
Attribute attribute = element.attribute("id");//得到子节点
if(attribute.getText().equals("1")){
books.remove(element);//通过根节点删除子节点
}
}
File file=new File("book.xml");
Demo2.write(file, doc);
}