package Bean;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
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 testXml {
public static void main(String[] args) throws DocumentException, IOException {
XMLWriter xmlwriter = null;
OutputStream out = null;
//这个xml字符串我只是举个例子说明她的格式 你们不用管
String xml = "<config>\n" +
" <htmlExtensions>html,htm,xml,js</htmlExtensions>\n" +
" <hideFolders>\n" +
" <folder>.*</folder>\n" +
" <folder>CVS</folder>\n" +
" </hideFolders>\n" +
" <hideFiles>\n" +
" <file>.*</file>\n" +
" </hideFiles>\n" +
" <defaultResourceTypes></defaultResourceTypes>\n" +
" <types>\n" +
" <type name=\"files\">\n" +
" <url>%BASE_URL%files/</url>\n" +
" <directory>%BASE_DIR%files</directory>\n" +
" <maxSize>5M</maxSize>\n" +
" <allowedExtensions>7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip</allowedExtensions>\n" +
" <deniedExtensions></deniedExtensions>\n" +
" </type>\n" +
" <type name=\"images\">\n" +
" <url>%BASE_URL%images/</url>\n" +
" <directory>%BASE_DIR%images</directory>\n" +
" <maxSize>2M</maxSize>\n" +
" <allowedExtensions>bmp,gif,jpeg,jpg,png</allowedExtensions>\n" +
" <deniedExtensions></deniedExtensions>\n" +
" </type>\n" +
" \n" +
" </types>\n" +
" \n" +
"</config>";
//这个路径可以指定自己的路径 随意
String XML_FILE = "D:\\360Downloads\\aaa.xml";
SAXReader sax = new SAXReader();
Document document = sax.read(new FileInputStream(XML_FILE));
//你得先得到根节点
Element root = document.getRootElement();
//然后得到根节点下指定名称的节点 例如“types”
List<Element> elements = root.elements("types");
for(Element e : elements){
e.detach();//循环删除那个types节点里的type节点
}
Element loaded = DocumentHelper.createElement("types");
//这个就简单了 创建节点然后添加属性 <type name="45" ></type>参考上面的xml字符串
Element dict = DocumentHelper.createElement("type");
dict.addAttribute("name", "45");
Element url = DocumentHelper.createElement("url");
url.setText("%BASE_URL%45/");
Element directory = DocumentHelper.createElement("directory");
directory.setText("%BASE_DIR%45");
Element maxSize = DocumentHelper.createElement("maxSize");
maxSize.setText("5M");
Element allowedExtensions = DocumentHelper.createElement("allowedExtensions");
allowedExtensions.setText("7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip");
//创建完节点后一得一步一步的添加上去 所以得一点一点的add
Element deniedExtensions = DocumentHelper.createElement("deniedExtensions");
deniedExtensions.setText("");
dict.add(url);
dict.add(directory);
dict.add(maxSize);
dict.add(allowedExtensions);
dict.add(deniedExtensions);
loaded.add(dict);
root.add(loaded);
//这句wangxia 就是把更改好的xml文件在输出到本地硬盘中生成一个新的xml文件了
OutputFormat outformat = new OutputFormat();
outformat.setEncoding("UTF-8");
outformat.setNewlines(true);
outformat.setIndent(true);
outformat.setTrimText(true);
String rootPath = System.getProperty("user.dir");
out = new FileOutputStream("D:\\360Downloads\\aaa.xml" );
xmlwriter = new XMLWriter(out, outformat);
xmlwriter.write(document);
}
}
这些代码实现的功能 主要是把xml文件读出来 ,进行节点的添加,删除,然后再重新生成新的xml文件覆盖原来的xml文件 因为这次吧 主要是因为ckfinder这个B插件 ,我得动态的改变他的ckfinder.xml配置文件所以才出此下策 ,我奉劝各位不要用这个B插件都不够上火的 ,真的 还不是假的 我这两天都他妈的改懵B了 真的