一、创建document对象
1.读取XML文件,获得document对象
SAXReader reader = new SAXReader();
Document document = reader.read(new File("csdn.xml"));
2.解析XML形式的文本,得到document对象.
String text = "<csdn></csdn>";
Document document = DocumentHelper.parseText(text);
3.主动创建document对象.
Document document = DocumentHelper.createDocument(); //创建根节点
Element root = document.addElement("csdn");
二、配置document的doctype
// 添加doctype
DefaultDocumentType docType = new DefaultDocumentType();
docType.setName("mapper");
docType.setPublicID("-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3- mapper.dtd");
document.setDocType(docType);
三、document对象操作节点
// 创建文档并写入磁盘中
Document document = getMyBatisDocument();
// 创建mapper节点
Element mapper = document.addElement("mapper");
mapper.addAttribute("namespace", Config.getProperty("dao") + "." + myTable.getBeanName() + "Dao");
// 创建resultMap节点
Element resultMap = mapper.addElement("resultMap");
resultMap.addAttribute("id", myTable.getBeanName() + "Map");
resultMap.addAttribute("type", Config.getProperty("beans") + "." + myTable.getBeanName());
// 创建insert节点
Element insert = mapper.addElement("insert");
insert.addAttribute("id", "insert");
insert.addAttribute("parameterType", Config.getProperty("beans")+"."+myTable.getBeanName());
Element selectKey = insert.addElement("selectKey");
selectKey.addAttribute("resultType", "long");
selectKey.addAttribute("keyProperty", myTable.getPkProperty());
selectKey.addAttribute("order", "BEFORE");
selectKey.addText("SELECT NEXTVAL('"+myTable.getSerializeName()+"')");
四、写入document到磁盘文件中
OutputFormat format = OutputFormat.createPrettyPrint(); // 创建文件输出的时候,自动缩进的格
format.setEncoding("UTF-8");// 设置编码
format.setIndent(true);
format.setNewlines(true);
format.setTrimText(false);
try {
// 将文档对象写入新建的xml文件中
XMLWriter writer;
writer = new XMLWriter(new FileWriter(fileName), format);
writer.write(document);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}