dom4j是我最喜歡的一套解析組件,操作簡便而且效率高。有了它,dom和sax可以光榮退休了.
下面是dom4j生成xml文件的代碼
package dom4j;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;public class dom4j_writeXML_02 {
public static void main(String args[]) throws Exception, Exception{
/**
* 創建文檔對象
*/
Document document=DocumentHelper.createDocument();
/**
*在文檔對象下增加根節點
*/
Element root =document.addElement("addressList");
/**
* 在每一個節點下增加子節點
*/
Element linkMan=root.addElement("linkMan");
Element name=linkMan.addElement("name");
/**
* 給name節點添加屬性
*/
name.addAttribute("id", "I am attribute");
Element email=linkMan.addElement("email");
/**
* 給name節點設置文本
*/
name.setText("我是最強的");
/**
* 給email節點設置文本
*/
email.setText("[email protected]");
/**
* 設置漂亮的輸出格式(也可以設置緊湊的輸出格式)
*/
OutputFormat format = OutputFormat.createPrettyPrint();
/**
* 以漂亮的格式,將xml文件輸出到d:\dom4j.xml文件中
*/
XMLWriter writer = new XMLWriter(
new FileOutputStream(new File("d:"+File.separator+"dom4j.xml")),format);
writer.write(document);
}
}看看吧,是不是很方便,理解起來也很容易。真的很佩服設計者的技巧,他的addxxx()方法並不是返回空,而是返回一個節點。這樣的話,我們就可以很容易的在某一個節點下增加子節點。
dom4j的讀取xml能力也很強
package dom4j;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;import java.io.*;
import java.util.Iterator;public class dom4j_ReadXML_01 {
public static void main(String args[]) throws DocumentException, Exception{
/**
* 創建一個解析器
*/
SAXReader reader=new SAXReader();
/**
* 解析xml文檔
*/
Document document=reader.read("d:"+File.separator+"dom4j.xml");
/**
* 獲得文本的根節點
*/
Element root=document.getRootElement();
/**
* 獲得根節點下面的全部子節點
*/
Iterator linkMans=root.elementIterator();
/**
* 遍歷節點輸出
*/
while(linkMans.hasNext()){
Element linkMan=(Element)linkMans.next();
System.out.println(linkMan.elementText("name"));
Element name=linkMan.element("name");
System.out.println(name.attribute("id").getName()+"="+name.attributeValue("id"));
System.out.println(linkMan.elementText("email"));
}
}
}老婆要求加的鏈接>>
xml解析方式2------dom4j
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.