import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
;
public class Dom4jDemo {
public Dom4jDemo() throws IOException, DocumentException {
//Document doc = createDoc();
//System.out.println(doc.asXML());
//printDoc(doc);
Document doc = parse("address.xml");
editDoc(doc);
printDoc(doc);
storeDoc(doc, "address.xml");
}
/**
* @param args
*/
public static void main(String[] args) {
try {
new Dom4jDemo();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (DocumentException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void printDoc(Document doc) throws IOException{
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new OutputStreamWriter(System.out), format);
writer.write(doc);
writer.flush();
}
public Document createDoc(){
Document doc=DocumentHelper.createDocument();
doc.addComment("Create By 刘苍松");
Element root = doc.addElement("address");
Element name = root.addElement("name");
name.addElement("title").addText("<b>Mr.</b>");
name.addElement("first-name").addCDATA("<b>Robin</b>");
name.addElement("last-name").addText("Liu");
root.addElement("street").addText("北京海淀");
root.addElement("city").addAttribute("province", "北京").addText("北京");
root.addElement("post-code").addText("100080");
return doc;
}
public Document parse(String xmlFile) throws FileNotFoundException, DocumentException{
Document doc = null;
SAXReader reader = new SAXReader();
doc = reader.read(new FileInputStream(xmlFile));
return doc;
}
public void editDoc(Document doc ){
String xpath = "//post-code";
Element element = (Element) doc.selectSingleNode(xpath);
element.setText("100100");
}
public void storeDoc(Document doc, String fileName) throws IOException{
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileOutputStream(fileName), format);
writer.write(doc);
writer.close();
}
}