dom4j创建和解析xml文件实例

来源:互联网 发布:淘宝手机助手5.0.0 编辑:程序博客网 时间:2024/05/22 17:12

/**
 * dom4j创建和解析xml文件
 * 注意编码格式
 * 默认是GBK,当改为其他时,注意输出编码格式,与xml文件编码格式一致。否则解析报错。
 * 还有创建元素的属性 
 * 
 */
public class XMLDemo {

public static void main(String[] args) throws Exception {
String file = "e://xml//maiku.xml";
createXml(file);
parseXml(file);
}

/**

*/
private static void createXml(String file) {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("maiku");
Element element = root.addElement("私人笔记");
root.addElement("共享笔记");
Element dream = element.addElement("梦想");
dream.addAttribute("time", "2month");
dream.setText("旅行");
Element reading = element.addElement("阅读");
reading.addElement("小说").setText("琅琊榜");
reading.addElement("电影").setText("奇幻人生");
try {
OutputFormat format =new OutputFormat(" ",true);
/**
* 次处编码默认为GBK,如果设置为utf-8,记得将输出流也按照utf-8的格式转码,否则解析的时候会出错。
*/
format.setEncoding("utf-8");
OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream(file),"utf-8");
XMLWriter xMLWriter = new XMLWriter(os,format);//设置格式
// Writer writer = new FileWriter(file);
// XMLWriter xMLWriter = new XMLWriter();
// xMLWriter.setWriter(writer);
xMLWriter.write(document);
xMLWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}

/**

* @param file
*/
private static void parseXml(String file) {
SAXReader sAXReader = new SAXReader();
try {
Document document = sAXReader.read(new File(file));
Element root = document.getRootElement();
Element element = root.element("私人笔记");
Element dream = element.element("梦想");
System.out.println(dream.getText());
System.out.println(dream.attribute("time").getName()+":"+dream.attribute("time").getText());//属性名和值
Element reading = element.element("阅读");
Element novel = reading.element("小说");
System.out.println(novel.getText());
Element movie = reading.element("电影");
System.out.println(movie.getText());
} catch (DocumentException e) {
e.printStackTrace();
}
}


}
0 0
原创粉丝点击