泛型類
在類定義的時候缩膝,在后面加上<E>膜蠢,在下面的成員中(屬性膜楷,方法)的E在用戶對E賦值的時候就會變成相應的數(shù)據(jù)類型砾嫉。
只在編譯時有效
靜態(tài)泛型方法
public static <T> T show(T t){
return t;
}
dom4j
優(yōu)點:
1.將xml元素封裝成對象使用
缺點:
1.速度相對于sax慢
2.可能出現(xiàn)內存溢出情況
使用
-導包
-創(chuàng)建SAXReader對象
-通過SAXReader對象得到所有節(jié)點
-得到根節(jié)點
-得到子節(jié)點集合遍歷
解析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();//得到根節(jié)點
List<Element> elements = books.elements();//得到所有子節(jié)點
for (Element element : elements) {
Attribute attribute = element.attribute("id");//得到子節(jié)點
if(attribute.getText().equals("1")){
books.remove(element);//通過根節(jié)點刪除子節(jié)點
}
}
File file=new File("book.xml");
Demo2.write(file, doc);
}