xml动态修改 dom4j修改

时间:2021-01-11 20:52:47

xml的动态修改需要传入的参数

xml的位置(tomcat中的发布位置)、修改后的xml需要保存的位置(因为动态修改,所以建议和xml未修改前的位置相同)、添加的节点的信息、或者修改的节点的信息

     SAXReader reader = new SAXReader();
Document doc = reader.read(new File(path));//path文件的路径
Element root = doc.getRootElement();//获取根节点
List childList = root.elements();//获取根节点下节点数目
Element it = (Element)childList.get(1);//需要往这个节点下添加子节点,所以在这里拿到它
Element dateElement = it.addElement("task:scheduled"); //创建一个节点,task:scheduled是节点名称,就像spring中的bean一样
dateElement.addAttribute("ref", pd.getString("ref"));//一下的三句分别是给节点添加属性
dateElement.addAttribute("method", pd.getString("method"));
dateElement.addAttribute("cron", pd.getString("cron"));
XMLWriter output;//创建输出流
OutputFormat format = OutputFormat.createPrettyPrint();
try {
output = new XMLWriter(new FileWriter(path), format); //这里的path是修改后需要保存的路径,建议和未修改前位置一样
output.write(doc);
output.close();
} catch (IOException e) {
e.printStackTrace();
}

引入类的包路径

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;