dom4j 解析xml 并且进行增加,删除 操作后重新生成xml文件

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了 真的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值